web-dev-qa-db-fra.com

Comment exporter une structure de répertoire sous Windows?

Dans l'Explorateur Windows, une vue en arborescence présente la vue d'ensemble de la structure d'un répertoire. Je veux partager la structure avec d'autres personnes.

Comment puis-je obtenir une vue arborescente navigable de la structure de répertoires d'une partition et exporter cette liste de fichiers, afin que d'autres puissent la visualiser sans accès à la partition?

Pour clarifier, je ne suis pas intéressé par les fichiers eux-mêmes. J'ai juste besoin d'une liste hiérarchique de tous les fichiers. Les compresser tous est non ce que je veux.

63
Björn Pollex

En supposant que votre arborescence de répertoires ait une taille raisonnable, vous pouvez également utiliser la commande tree intégrée, qui produit une arborescence de répertoires plutôt jolie. Malheureusement, cette beauté est difficile à faire fonctionner en dehors d'une instance de cmd, vous voudrez donc probablement lui dire d'utiliser uniquement des caractères ascii avec le commutateur /A.

Exemple:

D'une petite structure multi-niveaux

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

Vous pouvez ensuite le rediriger vers un fichier en utilisant une commande telle que:

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

Où le chemin du répertoire est facultatif, mais utile si vous souhaitez arborer un élément autre que le répertoire de travail actuel.

82
Phoshi

Si vous voulez utiliser powershell , le code est très simple et la sortie est agréable.

Code:

Get-ChildItem | tree

Avec

Get-ChildItem | tree > foo.txt

vous pouvez diriger la sortie vers un fichier texte.

Exemple de sortie:

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

Vous pouvez également placer les résultats directement dans le presse-papiers (sous Vista +):

tree | clip
10
Chris Smith

Bien que vous souhaitiez probablement la sortie de la commande TREE (par exemple, TREE /F > output.txt) dans ce cas, si le texte brut utilisé comme sortie est correct, vous pouvez exécuter ce qui suit à partir d'une invite de commande:

DIR C:\ /S > output.txt

Où output.txt sera généré dans le répertoire de travail en cours et contiendra une liste de tous les fichiers et répertoires du lecteur C:. Si vous voulez juste une sortie de fichiers avec leurs full chemins, exécutez ce qui suit:

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

Ce serait également une tâche facile d’écrire un programme pour analyser la sortie dans un programme de style vue de répertoire que vous pourrez visualiser.

9
Breakthrough

Ouvrir la fenêtre d'invite de commande -> Aller à votre chemin de répertoire

Puis exécutez la commande suivante pour générer

tree /f /a > tree.doc

La commande ci-dessus rendra le dossier et les fichiers structurés de manière récursive et exportés vers un fichier de document Word. Vous pouvez trouver "tree.doc" créé dans le même dossier

6
Vivek Chaturvedi

Utilisez la commande suivante de powershell, n'oubliez pas que vous pouvez l'exporter au format XML, CSV ou base de données. De plus, j'ai limité les propriétés au nom complet et au nom, vous pouvez utiliser d'autres propriétés telles que l'horodatage modifié, etc.

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

J'ai créé un programme spécifiquement pour cela - Instantané d'annuaire .
Il effectue une itération récursive dans un répertoire et stocke les noms et la taille de tous les fichiers et dossiers qu’il rencontre dans des fichiers HTML parfaitement structurés, dont l’organisation est similaire à celle du répertoire d’entrée.
En d’autres termes, cela peut être considéré comme une version avec hyperlien des commandes dir /s ou tree /f .

3
Anmol Singh Jaggi

Essayez ce script powershell si vous voulez lister le nombre de fichiers dans chaque répertoire à partir de votre emplacement actuel ...

$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 }
1
DaveAlger

Bien que cela ait déjà été répondu, je suis venu chercher ici la solution, mais je ne l'ai pas trouvée.

En regardant plus loin, j'ai trouvé ceci: http://gnuwin32.sourceforge.net/packages/tree.htm

Avec cela, je peux suivre les instructions de http://nsaunders.wordpress.com/2010/11/16/dropbox-tip-continued-convert-a-file-tree-to-html/ et créer un Arborescence HTML de mon dossier public Dropbox, et ainsi partager une arborescence de répertoires très facile.

1
Jan van Haarst

Vous pouvez simplement utiliser xcopy avec les options/T et/E pour copier uniquement les répertoires. Cela vous donnerait une copie complète et consultable de la structure, et répondrait à la première partie de votre question. Ne vous permet pas de voir les fichiers cependant ...

0
Gomibushi

Vous pouvez utiliser un outil d'archivage, tel que WinZIP, capable de compresser une structure de répertoires complète dans un seul fichier, que vous pouvez par exemple transférer sur un réseau ou sur un disque USB. Certains outils conserveront également des indicateurs tels que lecture seule, archive, etc.

Sous Linux, mon outil préféré pour ce type d’action est tar, qui prend une structure de répertoires complète dans un seul fichier, que je peux coupler avec gzip pour compresser le tout.

0
jfmessier