如何在Windows中导出目录结构?


65

在Windows资源管理器中,有一个树视图来查看目录结构的概述。我想与其他人分享结构。

如何获得分区目录结构的可浏览树状视图并导出该文件列表,以便其他人无需访问该分区即可查看它?

为了澄清,我对文件本身不感兴趣。我只需要所有文件的分层列表。全部压缩都不是我想要的。



如果需要,我可以编写一个AutoIt脚本,以您想要的任何样式将目录列表导出为纯文本格式。然后,您可以编写一个程序以将其解析回类似样式的目录视图。
突破

堆栈溢出时的相关问题
trejder 2014年

Answers:


85

假设您的目录树大小合理,您还可以使用内置tree命令,该命令将生成一个相当漂亮的目录树。不幸的是,很难在cmd实例之外进行这种处理,因此您可能要告诉它仅在/A开关中使用ascii字符。

例:

从一个小的多层次结构

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

然后,您可以使用以下命令将其重定向到文件:

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

目录路径是可选的,但如果要树状目录而不是当前工作目录,则很有用。


2
您还可以执行以下操作将此输出通过管道传输到文本文件:tree E: \A \F > output.txt
xan 2011年

@xan; 糟糕,那是答案的重要部分,我完全忘记了!谢谢
Phoshi 2011年

@xan仅供参考,您需要在/命令行参数标识符中使用正斜杠()而不是反斜杠。反斜杠是Windows系统中的目录树分隔符。
突破

3
@Breakthrough:糟糕-是的tree E: /A /F > output.txt-输入了我的斜线!
xan 2011年

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


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


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 }


0

您可以只将xcopy与/ T和/ E选项一起使用来仅复制目录。这将为您提供结构的完整且可浏览的副本,并回答问题的第一部分。但是不允许您查看文件...


0

您可以使用归档工具,例如WinZIP,可以将整个目录结构压缩为单个文件,例如,可以在网络上传输或放在USB磁盘上。一些工具还将保留标志,例如只读,存档等。

在Linux下,我最喜欢的用于执行此操作的工具是tar,它将整个目录结构合并为一个文件,我可以将其与gzip结合使用以实际压缩整个文件。


-1

我找到了进入命令提示符并输入的最简单方法(在我的情况下,我需要K:目录)

tree K: > tree.doc

我选择了Word文档,因为我需要一些用户友好的东西。在Word中打开它时,只需选择MS-Dos,它将看起来很棒。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.