Como posso exportar uma estrutura de diretórios no Windows?


62

No Windows Explorer, há uma exibição em árvore para ver a visão geral de uma estrutura de diretórios. Eu quero compartilhar a estrutura para outras pessoas.

Como posso obter uma exibição em árvore navegável da estrutura de diretório de uma partição e exportar essa lista de arquivos, para que outros possam visualizá-la sem acesso à partição?

Para esclarecer, não estou interessado nos arquivos em si. Eu só preciso de uma listagem hierárquica de todos os arquivos. Fechar tudo é não o que eu quero.



Se você quiser, eu posso escrever um AutoIt script para exportar a lista de diretórios em texto simples em qualquer estilo que você desejar. Você poderia, então, escrever um programa para analisá-lo em um estilo similar a uma visualização de diretório.
Breakthrough

Questão relacionada no estouro de pilha.
trejder

Respostas:


82

Supondo que a sua árvore de diretórios é de tamanho razoável, você também pode usar o built-in tree comando, que produz uma árvore de diretórios bastante bonita. Infelizmente esta beleza é difícil de se trabalhar fora de uma instância cmd, então você provavelmente vai querer dizer para usar apenas caracteres ascii com o /A interruptor.

Exemplo:

De uma pequena estrutura multi-nível

+---A
|   +---A
|   \---B
+---B
|   \---A
|       \---A
\---C

Você pode redirecionar isso para um arquivo usando um comando como:

tree /A ["directory path"] > tree.txt

Onde o caminho do diretório é opcional, mas útil se você deseja arborizar algo que não é o diretório de trabalho atual.


2
Você também pode canalizar essa saída para um arquivo de texto fazendo: tree E: \A \F > output.txt
xan

@ xan; Opa, essa foi a parte importante da resposta e eu esqueci completamente disso! obrigado
Phoshi

@ xan apenas FYI, você precisa usar barras para a frente ( / ) em vez de barras invertidas para identificadores de argumentos da linha de comandos. As barras invertidas são separadores de árvore de diretórios em sistemas Windows.
Breakthrough

3
@Breakthrough: Whoops - sim, tree E: /A /F > output.txt - digitou meus cortes!
xan

3
Você também pode mostrar os nomes de arquivos abaixo de sua pasta pai na estrutura da árvore, adicionando /f opção como esta: tree /A /f ["directory path"] > tree.txt
Ulysses Alves

19

Se você quiser usar o código é muito simples e a saída é legal.

Código:

Get-ChildItem | tree

Com

Get-ChildItem | tree > foo.txt

você pode canalizar a saída para um arquivo de texto.

Exemplo de Saída:

Auflistung der Ordnerpfade für Volume System
Volumeseriennummer : 48E9-F43B
C:.
├───Contacts
├───Desktop
├───Downloads
│   └───Evernote Import
├───Dropbox
│   ├───Apps
│   │   └───iftttcom
│   │       └───getpocketpdf
│   ├───Backup
│   ├───Camera Uploads
│   ├───Development

10

Você também pode colocar os resultados diretamente na área de transferência (no Vista +):

tree | clip

9

Enquanto você provavelmente quer a saída do TREE comando (por ex. TREE /F > output.txt ) neste caso, se o texto não processado como a saída está bem, então você pode executar o seguinte a partir de um prompt de comando:

DIR C:\ /S > output.txt

Em que output.txt será gerado no diretório de trabalho atual e conterá uma listagem de todos os arquivos e diretórios C: dirigir. Se você quer apenas uma saída de arquivos com seus cheio caminhos, execute o seguinte:

DIR C:\ /B /S > output.txt

Também seria uma tarefa trivial para escrever um programa para analisar a saída de volta para um programa de estilo de visualização de diretório para você ver.


6

Abra a janela do prompt de comando - & gt; Vá para o caminho do seu diretório

Em seguida, execute o seguinte comando para gerar

tree /f /a > tree.doc

O comando acima fará a estrutura de pastas e arquivos recursivamente e exportará para o arquivo de documentos do Word. Você pode encontrar "tree.doc" criado na mesma pasta


5

Use o seguinte comando powershell, lembre-se também que você pode exportá-lo para o Xml, csv ou para o banco de dados. Também tenho propriedades restritas ao nome completo e nome, você pode usar outras propriedades como timestamp modificado etc.

Get-ChildItem -Recurse 'Z:\temp' *.xml | Select-Object -Property FullName,name | Export-Csv directory_structure.csv

3

Eu criei um programa especificamente para isso - Instantâneo do Diretório .
Ele itera de maneira recursiva por meio de um diretório e armazena os nomes e tamanhos de todos os arquivos e pastas que encontra em arquivos HTML bem estruturados, que têm uma organização semelhante à do diretório de entrada.
Em outras palavras, isso pode ser pensado como uma versão de hiperlink do dir /s ou tree /f comandos.



1

Tente este roteiro powershell se você quiser listar o número de arquivos em cada diretório da sua localização atual ...

$dirs = Get-ChildItem -recurse | Where{$_.psIsContainer -eq $true} ; ForEach($d in $dirs){ "{0,6} | {1,-1}" -f (Get-ChildItem -path $d.fullname -recurse | where {$_.psIsContainer -ne $true}).count,$d.fullname >> file_counts.txt }

0

Você poderia apenas usar o xcopy com a opção / T e / E para copiar apenas os diretórios. Isso proporcionaria uma cópia completa e navegável da estrutura e responderia à primeira parte da sua pergunta. Não permite visualizar arquivos embora ...


0

Você poderia usar uma ferramenta de arquivamento, como o WinZIP, que pode compactar toda a estrutura de diretórios em um único arquivo, que você pode, por exemplo, transferir em uma rede ou colocar em um disco USB. Algumas ferramentas também manterão sinalizadores como somente leitura, arquivamento, etc.

No Linux, minha ferramenta favorita para essa ação é tar, que levará uma estrutura de diretórios inteira para um único arquivo, que eu posso juntar com o gzip para realmente compactar a coisa toda.


-1

Eu encontrei a maneira mais fácil indo para o prompt de comando e entrar (no meu caso eu precisava do diretório K:)

tree K: > tree.doc

Eu escolhi um documento do Word desde que eu precisava de algo amigável. Basta selecionar MS-Dos ao abri-lo no Word e ele ficará ótimo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.