Come posso esportare una struttura di directory in Windows?


65

In Esplora risorse di Windows è disponibile una visualizzazione ad albero per visualizzare la panoramica di una struttura di directory. Voglio condividere la struttura con altre persone.

Come posso ottenere una visualizzazione ad albero sfogliabile della struttura di directory di una partizione ed esportare tale elenco di file, in modo che altri possano vederlo senza accedere alla partizione?

Per chiarire, non sono interessato ai file stessi. Ho solo bisogno di un elenco gerarchico di tutti i file. Comprimerli tutti non è quello che voglio.



Se vuoi, posso scrivere uno script AutoIt per esportare l'elenco delle directory in testo semplice in qualunque stile tu voglia. È quindi possibile scrivere un programma per analizzarlo nuovamente in uno stile di visualizzazione di directory.
Sfondamento

Domanda relativa a StackTranslate.it.
Trejder,

Risposte:


85

Supponendo che la tua struttura di directory abbia dimensioni ragionevoli, puoi anche usare il treecomando incorporato , che produce una struttura di directory piuttosto carina. Sfortunatamente questa bellezza è difficile da far funzionare al di fuori di un'istanza cmd, quindi probabilmente vorrai dirgli di usare solo i caratteri ASCII con l' /Ainterruttore.

Esempio:

Da una piccola struttura a più livelli

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

Puoi quindi reindirizzare questo su un file usando un comando come:

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

Dove il percorso della directory è facoltativo, ma utile se si desidera creare un albero che non è la directory di lavoro corrente.


2
È inoltre possibile reindirizzare questo output in un file di testo eseguendo:tree E: \A \F > output.txt
xan

@xan; Spiacenti, questa è stata la parte importante della risposta e me ne sono completamente dimenticato! Grazie
Phoshi il

@xan solo FYI, devi usare forward-slash ( /) invece di barre rovesciate per gli identificatori degli argomenti della riga di comando. Le barre rovesciate sono separatori dell'albero delle directory nei sistemi Windows.
Sfondamento

3
@Breakthrough: Whoops - sì, tree E: /A /F > output.txt- ho sbagliato a scrivere le mie barre!
xan,

6
Puoi anche mostrare i nomi dei file sotto la loro cartella principale sulla struttura ad albero aggiungendo l' /fopzione in questo modo:tree /A /f ["directory path"] > tree.txt
Ulisse Alves il

19

Se vuoi usare il codice è molto semplice e l'output è buono.

Codice:

Get-ChildItem | tree

Con

Get-ChildItem | tree > foo.txt

è possibile reindirizzare l'output a un file di testo.

Esempio di output:

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

Puoi anche inserire i risultati direttamente negli appunti (in Vista +):

tree | clip

9

Sebbene molto probabilmente desideri l'output del TREEcomando (ad es. TREE /F > output.txt) In questo caso, se il testo non elaborato come output va bene, puoi eseguire quanto segue da un prompt dei comandi:

DIR C:\ /S > output.txt

Dove output.txt verrà generato nella directory di lavoro corrente e conterrà un elenco di tutti i file e le directory C:sull'unità. Se si desidera solo un output di file con i relativi percorsi completi , eseguire quanto segue:

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

Sarebbe anche banale scrivere un programma per analizzare nuovamente l'output in un programma in stile vista directory per poterlo visualizzare.


7

Apri la finestra del prompt dei comandi -> Vai al percorso della directory

Quindi eseguire il comando seguente per generare

tree /f /a > tree.doc

Il comando sopra renderà la cartella e la struttura dei file ricorsivamente ed esporterà in file di documento di Word. Puoi trovare "tree.doc" creato nella stessa cartella


5

Utilizzare il seguente comando PowerShell, inoltre, è possibile esportarlo in Xml, CSV o nel database. Inoltre ho limitato le proprietà al nome completo e al nome, puoi usare altre proprietà come il timestamp modificato, ecc.

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

3

Ho creato un programma specifico per questo - Directory Snapshot .
Esegue in modo ricorsivo una directory e memorizza i nomi e le dimensioni di tutti i file e le cartelle che incontra in file HTML ben strutturati, che hanno un'organizzazione simile a quella della directory di input.
In altre parole, questa può essere pensata come una versione con collegamento ipertestuale dei comandi dir /so tree /f.


2

Prova questo script PowerShell se desideri elencare il numero di file in ciascuna directory dalla posizione corrente ...

$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

Puoi semplicemente usare xcopy con l'opzione / T e / E per copiare solo le directory. Ciò ti procurerebbe una copia completa e navigabile della struttura e risponderà alla prima parte della tua domanda. Non ti consente di visualizzare i file però ...


0

È possibile utilizzare uno strumento di archiviazione, come WinZIP che può comprimere un'intera struttura di directory in un singolo file, che è possibile, ad esempio, trasferire su una rete o inserire un disco USB. Alcuni strumenti manterranno anche flag come sola lettura, archivio, ecc.

Sotto Linux, il mio strumento preferito per tale azione è tar, che porterà un'intera struttura di directory in un singolo file, che posso accoppiare con gzip per comprimere effettivamente l'intera cosa.


-1

Ho trovato il modo più semplice andando al prompt dei comandi e inserendo (nel mio caso avevo bisogno della directory K:)

tree K: > tree.doc

Ho scelto un documento di Word poiché avevo bisogno di qualcosa di facile da usare. Seleziona MS-Dos quando lo apri in Word e sembrerà fantastico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.