2011-03-16 11:31:01 +0000 2011-03-16 11:31:01 +0000
66

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

En el Explorador de Windows, hay una vista de árbol para ver el resumen de la estructura de un directorio. 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 tener acceso a la partición?

Para aclarar, no estoy interesado en los archivos en sí. Sólo necesito un listado jerárquico de todos los archivos. Comprimirlos todos no es lo que quiero.

Respuestas [12]

86
2011-08-04 13:22:53 +0000

Asumiendo que su árbol de directorios tiene un tamaño razonable, también puede utilizar el comando tree, que produce un árbol de directorios de aspecto bastante bonito. Desafortunadamente, esta belleza es difícil de conseguir fuera de una instancia de cmd, por lo que probablemente querrá decirle que sólo utilice caracteres ascii con el interruptor /A.

Ejemplo:

De una pequeña estructura multinivel

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

Puede entonces 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 quiere arbolar algo que no es el directorio de trabajo actual.

86
19
2012-07-17 14:32:54 +0000

Si quieres usar powershell el código es muy sencillo y la salida es bonita.

Código:

Get-ChildItem | tree

Con

Get-ChildItem | tree > foo.txt

puedes canalizar la salida a un archivo de texto.

Ejemplo de salida:

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
10
2013-12-18 12:25:42 +0000

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

tree | clip
10
9
2011-08-04 13:33:24 +0000

Aunque lo más probable es que quiera la salida del comando TREE (por ejemplo, TREE /F > output.txt) en este caso, si el texto sin formato como salida está bien, entonces 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á un listado de todos los archivos y directorios de la unidad C:. Si desea sólo 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 en un programa de estilo de vista de directorio para que usted lo vea.

9
7
2015-06-02 09:13:19 +0000

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

A continuación, ejecute el siguiente comando para generar

tree /f /a > tree.doc

El comando anterior hará la estructura de carpetas y archivos de forma recursiva y la exportación a un archivo de documento de Word. Usted puede encontrar "tree.doc" creado en la misma carpeta

7
5
2013-03-06 01:32:14 +0000

Utilice el siguiente comando de powershell, también recuerde que puede exportarlo a Xml, csv o a la base de datos. También he restringido las propiedades al nombre completo y al nombre, puedes usar otras propiedades como la fecha de modificación, etc.

Get-ChildItem -Recurse 'Z:\temp' *.xml | Select-Object -Property FullName,name | Export-Csv directory_structure.csv
5
3
2015-03-25 21:12:09 +0000

He creado un programa específicamente para esto - Directory Snapshot .
Recorre de forma recursiva 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, puede considerarse como una versión con hipervínculos de los comandos dir /s o tree /f .

3
2
2014-11-11 18:39:20 +0000

Prueba este script de powershell si quieres lista el número de archivos en cada directorio desde tu 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 }
2
0
2011-03-16 12:07:44 +0000

Podrías usar xcopy con la opción /T y /E para copiar sólo los directorios. Eso te daría una copia completa y navegable de la estructura, y responde a la primera parte de tu pregunta. Sin embargo, no le permite ver los archivos...

0
0
2011-03-16 12:18:23 +0000

Puedes utilizar una herramienta de archivado, como WinZIP, que puede comprimir toda la estructura de directorios en un único archivo, que puedes, por ejemplo, transferir a una red o poner en un disco USB. Algunas herramientas también mantendrán banderas como sólo lectura, archivo, etc.

En Linux, mi herramienta favorita para este tipo de acciones es tar, que tomará toda una estructura de directorios en un solo archivo, que puedo acoplar con gzip para comprimir realmente todo.

0
-1
2014-05-14 16:40:01 +0000

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

tree K: > tree.doc

Elegí un documento de Word ya que necesitaba algo fácil de usar. Sólo hay que seleccionar MS-Dos al abrirlo en Word y quedará muy bien.

-1