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.

Björn Pollex
fonte
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.

Phoshi
fonte
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
Marcel Janus
fonte
10

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

tree | clip
Chris Smith
fonte
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.

Breakthrough
fonte
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

Vivek Chaturvedi
fonte
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
user204518
fonte
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.

Anmol Singh Jaggi
fonte
1

Embora isso já tenha sido respondido, procurei aqui a solução, mas não a encontrei.

Olhando mais adiante, eu encontrei isto: http://gnuwin32.sourceforge.net/packages/tree.htm

Com isso eu posso seguir as instruções de http://nsaunders.wordpress.com/2010/11/16/dropbox-tip-continued-convert-a-file-tree-to-html/ e crie uma árvore HTML da minha pasta pública do Dropbox, e dessa forma compartilhe uma árvore de diretórios muito fácil.

Jan van Haarst
fonte
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 }
DaveAlger
fonte
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 ...

Gomibushi
fonte
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.

jfmessier
fonte
-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.

GeekSqueak
fonte