如何获取子目录中的文件和文件夹列表

时间:2014-02-12 00:11:06

标签: c#

我需要在子目录中获取文件和文件夹列表 文件列表全部清除,但不确定的目录列表

using System;
using System.IO;

namespace ConsoleApplication15
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo dir = new DirectoryInfo(@"D:\Temp");
            Console.WriteLine("============ list of directories =============");
            foreach (var item in dir.GetDirectories())
            {
                Console.WriteLine(item.Name);
                Console.WriteLine("== list of subdirectories ==");
                foreach (var it in item.GetDirectories())
                    Console.WriteLine(it.Name);
                Console.WriteLine();
            }
            Console.WriteLine("============== list of files ==============");
            foreach (var item in dir.GetFiles())
            {
                Console.WriteLine(item.Name);
            }
            Console.ReadLine();
        }
    }
}

有更好的方法吗?

目录示例:

folder1   
- folder2   
-- folder3   
-- folder4   
--- folder5   

1 个答案:

答案 0 :(得分:1)

正如@Mitch Wheat建议的那样,有选项SearchOption.AllDirectories。但是,请注意,当它遇到无法访问的文件夹时,可能会导致UnauthorizedAccessException。

所以对我来说最好的解决方案总是使用递归函数来忽略无法访问的文件夹。

对于递归解决方案,请参阅StackOverflow上的Ignore folders/files when Directory.GetFiles() is denied accessFolder recursion