Как я могу экспортировать структуру каталогов в Windows?

65

В проводнике Windows есть древовидное представление для просмотра обзора структуры каталогов. Я хочу поделиться структурой с другими людьми.

Как я могу получить древовидное представление структуры каталогов раздела и экспортировать этот список файлов, чтобы другие могли просматривать его без доступа к разделу?

Чтобы уточнить, мне не интересны сами файлы. Мне просто нужен иерархический список всех файлов. Застегнуть их все не то, что я хочу.

Бьерн Поллекс
источник
1
Это может помочь: Как
напечатать
Если хотите, я могу написать скрипт AutoIt для экспорта списка каталогов в обычный текст в любом стиле, который вы пожелаете. Затем вы могли бы написать программу, чтобы разобрать ее обратно в стиль представления каталога.
Прорыв
Связанный вопрос в переполнении стека.
Трейдер

Ответы:

85

Предполагая, что ваше дерево каталогов имеет разумный размер, вы также можете использовать встроенную treeкоманду, которая создает довольно симпатичное дерево каталогов. К сожалению, эту красивость сложно заставить работать вне экземпляра cmd, поэтому вы, вероятно, захотите сказать ему, что нужно просто использовать символы ascii с /Aпереключателем.

Пример:

Из небольшой многоуровневой структуры

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

Затем вы можете перенаправить это в файл с помощью команды вроде:

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

Где путь к каталогу необязателен, но полезен, если вы хотите создать дерево, которое не является текущим рабочим каталогом.

Phoshi
источник
2
Вы также можете передать этот вывод в текстовый файл, выполнив:tree E: \A \F > output.txt
xan
@xan; Ой, это был важный бит ответа, и я полностью забыл об этом! Спасибо
Phoshi
@xan просто FYI, вам нужно использовать forward-slashes ( /) вместо backslashes для идентификаторов аргументов командной строки. Обратные косые черты являются разделителями дерева каталогов в системах Windows.
Прорыв
3
@Breakthrough: Упс - да, 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

Выше команда сделает рекурсивную структуру папок и файлов и экспортирует их в текстовый файл документа. Вы можете найти "tree.doc", созданный в той же папке

Вивек Чатурведи
источник
5

Используйте следующую команду powershell, также помните, что вы можете экспортировать ее в Xml, CSV или в базу данных. Также я ограничил свойства полным именем и именем, вы можете использовать другие свойства, такие как измененная временная метка и т. Д.

Get-ChildItem -Recurse 'Z:\temp' *.xml | Select-Object -Property FullName,name | Export-Csv directory_structure.csv
user204518
источник
3

Специально для этого я создал программу - Снимок каталогов .
Он рекурсивно перебирает каталог и сохраняет имена и размеры всех файлов и папок, с которыми он сталкивается, в аккуратно структурированных файлах HTML, которые имеют организацию, аналогичную организации входного каталога.
Другими словами, это можно рассматривать как гиперссылочную версию команд dir /sor tree /f.

Анмол Сингх Джагги
источник
2

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

$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 }
DaveAlger
источник
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 для копирования только каталогов. Это даст вам полную и доступную для просмотра копию структуры и ответит на первую часть вашего вопроса. Не позволяет просматривать файлы, хотя ...

Gomibushi
источник
0

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

В Linux моим любимым инструментом для таких действий является tar, который объединяет всю структуру каталогов в один файл, который я могу связать с gzip, чтобы фактически сжать все это.

jfmessier
источник
-1

Я нашел самый простой способ перейти в командную строку и войти (в моем случае мне нужен каталог K:)

tree K: > tree.doc

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

GeekSqueak
источник