Як я можу експортувати структуру каталогів у Windows?


65

У Провіднику Windows є перегляд дерева, щоб побачити огляд структури каталогів. Я хочу поділитися структурою з іншими людьми.

Як я можу отримати перегляд дерева-структури структури каталогу розділу та експортувати цей файл-список, щоб інші могли його переглядати без доступу до розділу?

Для уточнення мене не цікавлять самі файли. Мені просто потрібен ієрархічний перелік усіх файлів. Застібати їх усіх - це не те, що я хочу.



Якщо ви хочете, я можу написати сценарій AutoIt для експорту списку каталогів у звичайний текст у будь-якому стилі, який ви хотіли б. Потім ви можете написати програму для її розбору в стилі перегляду каталогів.
Прорив

Питання, пов’язані з переповненням стека.
трейдер

Відповіді:


85

Якщо припустити, що ваше дерево каталогів має розумні розміри, ви також можете використовувати вбудовану treeкоманду, яка створює досить гарне дерево каталогів. На жаль, ця підступність складно працювати поза екземпляром cmd, тому, ймовірно, ви захочете сказати їй просто використовувати символи ascii з /Aкомутатором.

Приклад:

З невеликої багаторівневої структури

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

Потім можна перенаправити це на файл за допомогою команди типу:

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

Де шлях до каталогу необов’язковий, але корисний, якщо ви хочете вивести щось, що не є поточним робочим каталогом.


2
Ви також можете передавати цей вихід у текстовий файл, виконуючи:tree E: \A \F > output.txt
xan

@xan; Ну, це був важливий фрагмент відповіді, і я повністю забув про це! Спасибі
Phoshi

@xan просто FYI, вам потрібно використовувати косої косий риси ( /) замість зворотних косих рисок для ідентифікаторів аргументів командного рядка. Зворотні риски - це роздільники дерев каталогів у системах Windows.
Прорив

3
@Закінчення: На жаль, так tree E: /A /F > output.txt- неправильно вводить мої риски!
xan

6
Ви також можете показати імена файлів під їх батьківською папкою на структурі дерева, додавши такий /fваріант:tree /A /f ["directory path"] > tree.txt
Ulysses Alves

19

Якщо ви хочете використовувати код дуже простий і вихід хороший.

Код:

Get-ChildItem | tree

З

Get-ChildItem | tree > foo.txt

Ви можете передати висновок у текстовий файл.

Приклад Вихід:

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

Ви також можете помістити результати безпосередньо в буфер обміну (у Vista +):

tree | clip

9

Хоча ви, швидше за все, хочете вивести TREEкоманду (наприклад TREE /F > output.txt) у цьому випадку, якщо вихідний текст як вихід є нормальним, ви можете виконати наступне з командного рядка:

DIR C:\ /S > output.txt

Де output.txt буде генеруватися в поточному робочому каталозі та міститиме перелік усіх файлів і каталогів на C:диску. Якщо ви хочете просто вивести файли з їх повними шляхами, виконайте наступне:

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

Також було б тривіальним завданням написати програму для розбору результатів назад у програмі стилю перегляду каталогу, яку ви можете переглянути.


7

Відкрийте вікно командного рядка -> Перейти до шляху вашого каталогу

Потім запустіть наступну команду для створення

tree /f /a > tree.doc

Вищевказана команда зробить структуру папок та файлів рекурсивно та експортує у файл документа Word. Ви можете знайти "tree.doc", створений у тій же папці


5

Використовуйте наступну команду powershell, також пам’ятайте, що ви можете експортувати його в Xml, csv або в базу даних. Також я обмежував властивості повним ім'ям та іменем, ви можете використовувати інші властивості, наприклад модифіковану часову марку тощо.

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

3

Я створив програму спеціально для цього - Знімок каталогу .
Він рекурсивно повторюється через каталог і зберігає імена та розміри всіх файлів і папок, з якими він стикається, у чітко структурованих HTML-файлах, які мають організацію, подібну до вхідної директорії.
Іншими словами, це можна розглядати як гіперпосилання версії команд dir /sабо tree /f.


2

Спробуйте цей скрипт повноважень, якщо ви хочете перерахувати кількість файлів у кожному каталозі з вашого поточного місцезнаходження ...

$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

Хоча на це вже відповіли, я прийшов шукати рішення, але не знайшов його.

Подивившись далі, я виявив це: http://gnuwin32.sourceforge.net/packages/tree.htm

З цим я можу виконувати вказівки http://nsaunders.wordpress.com/2010/11/16/dropbox-tip-continued-convert-a-file-tree-to-html/ та створити HTML-дерево мого Публічна папка Dropbox і дуже легко поділити дерево каталогів.


0

Ви можете просто використовувати xcopy з опцією / T і / E для копіювання лише каталогів. Це дозволить отримати повну та проглянуту копію структури та відповісти на першу частину вашого запитання. Не дозволяє переглядати файли, хоча ...


0

Ви можете скористатися інструментом архівації, таким як WinZIP, який зможе зібрати всю структуру каталогів в один файл, який можна, наприклад, перенести в мережу або поставити на USB-диск. Деякі інструменти також зберігатимуть прапори, такі як лише для читання, архіву тощо.

У Linux моїм улюбленим інструментом для таких дій є tar, який забере всю структуру каталогів в один файл, який я можу з’єднати з gzip, щоб фактично стиснути все.


-1

Я знайшов найпростіший спосіб перейти до командного рядка та введення (у моєму випадку мені знадобився каталог K:)

tree K: > tree.doc

Я вибрав документ Word, оскільки мені потрібно було щось дружнє для користувачів. Просто виберіть MS-Dos при відкритті його в Word, і це буде чудово виглядати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.