¿Cómo puedo exportar una estructura de directorios en Windows?


65

En el Explorador de Windows, hay una vista de árbol para ver la descripción general de una estructura de directorios. Quiero compartir la estructura con otras personas.

¿Cómo puedo obtener una vista de árbol navegable de la estructura de directorios de una partición y exportar esa lista de archivos, para que otros puedan verla sin acceso a la partición?

Para aclarar, no estoy interesado en los archivos en sí. Solo necesito una lista jerárquica de todos los archivos. Comprimirlos a todos no es lo que quiero.



Si lo desea, puedo escribir un script de AutoIt para exportar la lista del directorio a texto sin formato en el estilo que desee. Luego, podría escribir un programa para analizarlo nuevamente en una vista de directorio como estilo.
Avance el

Pregunta relacionada en Stack Overflow.
trejder

Respuestas:


85

Suponiendo que su árbol de directorios tiene un tamaño razonable, también podría usar el treecomando integrado , que produce un árbol de directorios bastante atractivo. Desafortunadamente, esta belleza es difícil de hacer funcionar fuera de una instancia de cmd, por lo que probablemente desee decirle que solo use caracteres ascii con el /Ainterruptor.

Ejemplo:

Desde una pequeña estructura multinivel

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

Luego puede redirigir esto a un archivo usando un comando como:

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

Donde la ruta del directorio es opcional, pero útil si desea crear un árbol que no sea el directorio de trabajo actual.


2
También puede canalizar esta salida a un archivo de texto haciendo:tree E: \A \F > output.txt
xan

@xan; ¡Vaya, esa fue la parte importante de la respuesta y lo olvidé por completo! Gracias
Phoshi

@xan solo para su información, debe usar barras diagonales ( /) en lugar de barras diagonales inversas para los identificadores de argumento de línea de comando. Las barras invertidas son separadores de árbol de directorios en los sistemas Windows.
Avance el

3
@Breakthrough: ¡Vaya! Sí, ¡escribí tree E: /A /F > output.txtmal mis barras!
xan

66
También puede mostrar los nombres de archivo debajo de su carpeta principal en la estructura de árbol agregando la siguiente /fopción:tree /A /f ["directory path"] > tree.txt
Ulysses Alves el

19

Si desea utilizar el código es muy simple y la salida es agradable.

Código:

Get-ChildItem | tree

Con

Get-ChildItem | tree > foo.txt

puede canalizar la salida a un archivo de texto.

Salida de ejemplo:

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

También puede poner los resultados directamente en el portapapeles (en Vista +):

tree | clip

9

Si bien lo más probable es que desee la salida del TREEcomando (por ejemplo TREE /F > output.txt) en este caso, si el texto sin procesar como la salida está bien, puede ejecutar lo siguiente desde un símbolo del sistema:

DIR C:\ /S > output.txt

Donde output.txt se generará en el directorio de trabajo actual y contendrá una lista de todos los archivos y directorios en la C:unidad. Si solo desea una salida de archivos con sus rutas completas , ejecute lo siguiente:

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

También sería una tarea trivial escribir un programa para analizar la salida de nuevo en un programa de estilo de vista de directorio para que lo vea.


7

Abra la ventana del símbolo del sistema -> Vaya a la ruta del directorio

Luego ejecute el siguiente comando para generar

tree /f /a > tree.doc

El comando anterior hará que la carpeta y los archivos se estructuran de forma recursiva y se exportarán a un archivo de documento de Word. Puede encontrar "tree.doc" creado en la misma carpeta


5

Utilice el siguiente comando powershell, también recuerde que puede exportarlo a Xml, csv o a la base de datos. También tengo propiedades restringidas para el nombre completo y el nombre, puede usar otras propiedades como marca de tiempo modificada, etc.

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

3

He creado un programa específicamente para esto: Instantánea de directorio .
Se itera recursivamente a través de un directorio y almacena los nombres y tamaños de todos los archivos y carpetas que encuentra en archivos HTML perfectamente estructurados, que tienen una organización similar a la del directorio de entrada.
En otras palabras, esto puede considerarse como una versión hipervinculada de los comandos dir /so tree /f.


2

Pruebe este script de PowerShell si desea enumerar el número de archivos en cada directorio desde su ubicación actual ...

$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

Simplemente puede usar xcopy con la opción / T y / E para copiar solo directorios. Eso le daría una copia completa y navegable de la estructura, y respondería la primera parte de su pregunta. Sin embargo, no te permite ver archivos ...


0

Puede utilizar una herramienta de archivo, como WinZIP, que puede comprimir una estructura de directorio completa en un solo archivo, que puede, por ejemplo, transferir en una red o colocar en un disco USB. Algunas herramientas también mantendrán marcas como solo lectura, archivo, etc.

En Linux, mi herramienta favorita para tal acción es tar, que tomará una estructura de directorio completa en un solo archivo, que puedo combinar con gzip para comprimir todo.


-1

Encontré la forma más fácil de ir al símbolo del sistema e ingresar (en mi caso, necesitaba el directorio K:)

tree K: > tree.doc

Elegí un documento de Word porque necesitaba algo fácil de usar. Simplemente seleccione MS-Dos al abrirlo en Word y se verá genial.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.