【问题标题】:How can I get directories of a folder and then its directories' directory and so on...?如何获取文件夹的目录,然后获取其目录的目录等等......?
【发布时间】:2017-11-13 00:24:00
【问题描述】:

我在用 C# 编码,如果你不能提供代码但你可以解释如何实现结果,请回答。

我想拥有位于一个目录中的所有文件夹和文件的名称(路径),然后拥有它们的子目录和文件,依此类推,直到一个都没有。

简单来说,我想映射整个目录。

我想要一个类似于命令提示符中的tree 命令的输出,但只有路径: ├── dirPath (level 0) │ └── f1 (level 1) │ │ └──f0 (level 2) │ │ │ └──file.txt (level 3) │ │ │ └──f4 (level 3) │ │ └──f3 (level 2) │ └── f2 (level 1)

我使用过但没有返回我想要的代码:

foreach (string dir in Directory.GetDirectories(dirPath)) {
      Console.WriteLine(dir);
}

输出(仅返回级别 1)

dir/f1
dir/f2

也试过这个代码:

foreach (string dir in Directory.GetDirectories(dirPath)) {
      foreach(string subdir in Directory.GetDirectories(dir)) {
            Console.WriteLine(subdir);
      }
      Console.WriteLine(dir);
}

输出(返回级别 1 和 2)

dir/f1/f0
dir/f1/f3
dir/f1
dir/f2

我想要什么

dir/f1/f0/file.txt
dir/f1/f0/f4
dir/f1/f3
dir/f1
dir/f2

有没有办法做到这一点?如果我们可以获取目录路径,“获取文件”部分就没有问题,我们可以使用foreach循环来获取文件。

谢谢。

【问题讨论】:

    标签: c# windows winforms file-handling directory-structure


    【解决方案1】:
    string path = @"C:\YourPath";
    string[] folders = Directory.GetDirectories(path, "*", SearchOption.AllDirectories);
    string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories);
    List<string> filesAndFolders = folders.Union(files).ToList();
    filesAndFolders.Sort();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      相关资源
      最近更新 更多