66

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.

12 Answers 12

86

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.

  • 2
    You can also pipe this output to a text file by doing: tree E: \A \F > output.txt – xan Aug 4 '11 at 13:35
  • @xan; Whoops, that was the important bit of the answer and I completely forgot about it! Thanks – Phoshi Aug 4 '11 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. – Breakthrough Aug 4 '11 at 13:39
  • 3
    @Breakthrough: Whoops - yes, tree E: /A /F > output.txt - mistyped my slashes! – xan Aug 4 '11 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 – Ulysses Alves Dec 23 '16 at 17:29
19

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
10

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

tree | clip
9

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.

7

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

5

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
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

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

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 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...

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.

-1

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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.