Jak mogę wyeksportować strukturę katalogów w systemie Windows?

65

W Eksploratorze Windows znajduje się widok drzewa, aby zobaczyć przegląd struktury katalogów. Chcę podzielić się strukturą z innymi ludźmi.

Jak uzyskać przeglądalny w strukturze drzewa katalog struktury partycji i wyeksportować tę listę plików, aby inni mogli ją przeglądać bez dostępu do partycji?

Aby to wyjaśnić, nie interesują mnie same pliki. Potrzebuję tylko hierarchicznej listy wszystkich plików. Spakowanie ich wszystkich nie jest tym, czego chcę.

Björn Pollex
źródło
Jeśli chcesz, mogę napisać skrypt AutoIt, aby wyeksportować listę katalogów do zwykłego tekstu w dowolnym stylu. Następnie możesz napisać program, który parsuje go z powrotem w stylu podobnym do widoku katalogu.
Przełom
Podobne pytanie w przypadku przepełnienia stosu.
trejder

Odpowiedzi:

85

Zakładając, że twoje drzewo katalogów ma rozsądną wielkość, możesz również użyć wbudowanego treepolecenia, które tworzy dość ładnie wyglądające drzewo katalogów. Niestety, ta ładność jest trudna do uruchomienia poza instancją cmd, więc prawdopodobnie będziesz chciał powiedzieć jej, aby używała znaków ascii z /Aprzełącznikiem.

Przykład:

Z małej struktury wielopoziomowej

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

Następnie możesz przekierować to do pliku za pomocą polecenia takiego jak:

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

Gdzie ścieżka do katalogu jest opcjonalna, ale przydatna, jeśli chcesz utworzyć drzewo czegoś, co nie jest bieżącym katalogiem roboczym.

Phoshi
źródło
2
Możesz także przesłać dane wyjściowe do pliku tekstowego, wykonując:tree E: \A \F > output.txt
xan
@xan; Ups, to była najważniejsza odpowiedź i zupełnie o niej zapomniałem! Dzięki
Phoshi,
@ xan tylko FYI, musisz użyć ukośników ( /) zamiast ukośników odwrotnych dla identyfikatorów argumentów wiersza poleceń. Ukośniki odwrotne to separatory drzewa katalogów w systemach Windows.
Przełom
3
@Breakthrough: Whoops - tak, tree E: /A /F > output.txt- pomyliłem moje slashy!
xan
6
Możesz także wyświetlić nazwy plików poniżej ich folderu nadrzędnego w strukturze drzewa, dodając następującą /fopcję:tree /A /f ["directory path"] > tree.txt
Ulysses Alves
19

Jeśli chcesz użyć programu kod jest bardzo prosty, a wynik jest przyjemny.

Kod:

Get-ChildItem | tree

Z

Get-ChildItem | tree > foo.txt

możesz przesłać dane wyjściowe do pliku tekstowego.

Przykładowe dane wyjściowe:

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

Możesz również umieścić wyniki bezpośrednio w schowku (w Vista +):

tree | clip
Chris Smith
źródło
9

Chociaż w tym przypadku najprawdopodobniej potrzebujesz wyniku TREEpolecenia (np. TREE /F > output.txt), Jeśli tekst wyjściowy jest poprawny, możesz uruchomić następujące polecenie z wiersza polecenia:

DIR C:\ /S > output.txt

Gdzie output.txt zostanie wygenerowany w bieżącym katalogu roboczym i zawiera listę wszystkich plików i katalogów na C:dysku. Jeśli chcesz tylko plik wyjściowy z pełną ścieżką, uruchom następujące polecenie:

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

Byłoby również trywialnym zadaniem napisanie programu, który parsuje dane wyjściowe z powrotem do programu w stylu widoku katalogu, który można wyświetlić.

Przełom
źródło
7

Otwórz okno wiersza poleceń -> Przejdź do ścieżki katalogu

Następnie uruchom następujące polecenie, aby wygenerować

tree /f /a > tree.doc

Powyższe polecenie spowoduje rekursywną strukturę folderów i plików i wyeksportowanie do pliku dokumentu programu Word. „Tree.doc” można znaleźć w tym samym folderze

Vivek Chaturvedi
źródło
5

Użyj następującego polecenia PowerShell, pamiętaj również, że możesz go wyeksportować do Xml, csv lub do bazy danych. Mam również ograniczone właściwości do pełnej nazwy i nazwy, możesz używać innych właściwości, takich jak zmodyfikowany znacznik czasu itp.

Get-ChildItem -Recurse 'Z:\temp' *.xml | Select-Object -Property FullName,name | Export-Csv directory_structure.csv
użytkownik204518
źródło
3

Stworzyłem specjalnie do tego program - Snapshot katalogu .
Rekurencyjnie iteruje po katalogu i przechowuje nazwy i rozmiary wszystkich napotkanych plików i folderów w uporządkowanych plikach HTML, które mają organizację podobną do tej z katalogu wejściowego.
Innymi słowy, można to uznać za hiperlinkowaną wersję poleceń dir /slub tree /f.

Anmol Singh Jaggi
źródło
2

Wypróbuj ten skrypt PowerShell, jeśli chcesz wyświetlić listę plików w każdym katalogu z bieżącej lokalizacji ...

$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
źródło
0

Możesz po prostu użyć xcopy z opcją / T i / E, aby skopiować tylko katalogi. To da ci pełną i możliwą do przeglądania kopię struktury i odpowie na pierwszą część twojego pytania. Nie pozwala jednak wyświetlać plików ...

Gomibushi
źródło
0

Możesz użyć narzędzia do archiwizacji, takiego jak WinZIP, które może spakować całą strukturę katalogów do jednego pliku, który możesz na przykład przesłać w sieci lub umieścić na dysku USB. Niektóre narzędzia zachowują również flagi, takie jak tylko do odczytu, archiwum itp.

Pod Linuksem moim ulubionym narzędziem do takich działań jest tar, który przenosi całą strukturę katalogów do jednego pliku, który mogę połączyć z gzipem, aby skompresować całość.

jfmessier
źródło
-1

Znalazłem najłatwiejszy sposób przejścia do wiersza poleceń i wpisania (w moim przypadku potrzebowałem katalogu K:)

tree K: > tree.doc

Wybrałem dokument Word, ponieważ potrzebowałem czegoś przyjaznego dla użytkownika. Po prostu wybierz MS-Dos podczas otwierania go w programie Word, a będzie wyglądać świetnie.

GeekSqueak
źródło