72

In Windows Explorer, there is a tree-view to see the overview of a directory structure. I want to share the structure to other people.

How can I get a browsable tree-view of the directory structure of a partition and export that file-list, so that others can view it without access to the partition?

To clarify, I am not interested in the files themselves. I just need a hierarchical listing of all files. Zipping them all up is not what I want.

3

12 Answers 12

92

Assuming your directory tree is of reasonable size, you could also use the built in tree command, which produces a rather pretty looking directory tree. Unfortunately this prettiness is difficult to get working outside of a cmd instance, so you'll probably want to tell it to just use ascii characters with the /A switch.

Example:

From a small multi-level structure

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

You can then redirect this to a file using a command like:

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

Where the directory path is optional, but useful if you want to tree something which isn't the current working directory.

9
  • 2
    You can also pipe this output to a text file by doing: tree E: \A \F > output.txt
    – xan
    Aug 4, 2011 at 13:35
  • @xan; Whoops, that was the important bit of the answer and I completely forgot about it! Thanks
    – Phoshi
    Aug 4, 2011 at 13:37
  • @xan just FYI, you need to use forward-slashes (/) instead of backslashes for command line argument identifiers. Backslashes are directory tree separators in Windows systems. Aug 4, 2011 at 13:39
  • 3
    @Breakthrough: Whoops - yes, tree E: /A /F > output.txt - mistyped my slashes!
    – xan
    Aug 4, 2011 at 15:32
  • 7
    You can also show the filenames below their parent folder on the tree structure by adding the /f option like this: tree /A /f ["directory path"] > tree.txt Dec 23, 2016 at 17:29
21

If you want to use the code is very simple and the output is nice.

Code:

Get-ChildItem | tree

With

Get-ChildItem | tree > foo.txt

you can pipe the output to a Textfile.

Example Output:

Auflistung der Ordnerpfade für Volume System
Volumeseriennummer : 48E9-F43B
C:.
├───Contacts
├───Desktop
├───Downloads
│   └───Evernote Import
├───Dropbox
│   ├───Apps
│   │   └───iftttcom
│   │       └───getpocketpdf
│   ├───Backup
│   ├───Camera Uploads
│   ├───Development
2
  • 1
    I'm afraid tree discards the input from the pipeline. For that reason your command is the same as running tree by itself, so it is pointless to pipe the output of Get-ChildItem to tree.
    – Tolga
    Apr 19, 2020 at 20:53
  • I agree with @Tolga. I checked and no matter the input from the pipeline, tree.com outputs the result for the current working directory. It seems like tree takes in arguments when invoked, but when there is none in arguments it produces the result based on the current working directory. Aug 3, 2022 at 3:58
12

You can also put the results directly into the clipboard (in Vista+):

tree | clip
11

Open command prompt window --> Go to your directory path

Then run the following command to generate

tree /f /a > tree.doc

Above command will make the folder and files structure recursively and export to word document file. You can find "tree.doc" created in the same folder

10

While you most likely want the output of the TREE command (e.g. TREE /F > output.txt) in this case, if raw text as the output is fine, then you can run the following from a command prompt:

DIR C:\ /S > output.txt

Where output.txt will be generated in the current working directory, and contain a listing of all files and directories on the C: drive. If you want just an output of files with their full paths, run the following:

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

It would also be a trivial task to write a program to parse the output back into a directory view style program for you to view.

6

Use the following powershell command, also remember that you can export it to Xml, csv or to database. Also I have restricted properties to full name and name, you can use other properties like modified timestamp etc.

Get-ChildItem -Recurse 'Z:\temp' *.xml | Select-Object -Property FullName,name | Export-Csv directory_structure.csv
2
  • Can you limit it to folders name and limit the depth to 2?
    – Royi
    Mar 22, 2020 at 14:22
  • Yes, you can. Get-ChildItem -Recurse -Directory -Depth 2 'Z:\temp' | Select-Object -Property FullName,name | Export-Csv directory_structure.csv
    – Avsek
    Mar 26, 2020 at 15:02
3

I have created a program specifically for this - Directory Snapshot.
It recursively iterates through a directory and stores the names and sizes of all the files and folders it encounters in neatly-structured HTML files, which have an organization similar to that of the input directory.
In other words, this can be thought of as a hyperlinked version of the dir /s or tree /f commands.

2
  • Could someone build this pretty please? It does exactly what I want. Jul 5, 2020 at 16:37
  • @Grumpyol'Bear If you want, I can port it to Python this weekend :) Jul 6, 2020 at 2:26
2

Try this powershell script if you want to list the number of files in each directory from your current location...

$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

You could just use xcopy with the /T and /E option to copy only directories. That would get you a complete and browsable copy of the structure, and answers the first part of your question. Does not let you view files though...

1

Although this has already been answered, I came looking here for the solution, but didn't find it.

Looking further, I found this : http://gnuwin32.sourceforge.net/packages/tree.htm

With that I can follow the instructions of http://nsaunders.wordpress.com/2010/11/16/dropbox-tip-continued-convert-a-file-tree-to-html/ , and create a HTML tree of my Dropbox public folder, and in that way share a directory tree very easy.

0

You could use an archiving tool, such as WinZIP that can zip an entire directory structure into a single file, that you can, for example, transfer on a network, or put on a USB disk. Some tools will also keep flags such as read-only, archive, etc.

Under Linux, my favorite tool for such action is tar, that will take an entire directory structure into a single file, which I can couple with gzip to actually compress the whole thing.

-2

I found the easiest way going to command prompt and entering (in my case I needed the K: directory)

tree K: > tree.doc

I chose a Word document since I needed something user friendly. Just select MS-Dos when opening it in Word and it'll look great.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .