以递归方式列出给定路径下的所有文件和文件夹?

Dat*_*ase 11 .net c# filesystems file path

可能重复:
如何递归列出C#中目录中的所有文件?

我想列出给定文件夹(路径)的文件和文件夹的"子路径"

假设我有文件夹C:\ files\folder1\subfolder1\file.txt

如果我给函数c:\ files\folder1 \

我将获得subfolder1子文件夹1\file.txt

Dir*_*mar 27

您可以使用该 Directory.GetFiles方法列出文件夹中的所有文件:

string[] files = Directory.GetFiles(@"c:\files\folder1\", 
    "*.*",
    SearchOption.AllDirectories);

foreach (var file in files)
{
    Console.WriteLine(file);
}
Run Code Online (Sandbox Code Playgroud)

请注意,该SearchOption参数可用于控制搜索是递归(SearchOption.AllDirectories)还是不是(SearchOption.TopDirectoryOnly).

  • @galmok:使用`Directory.GetFileSystemEntries(...)` 而不是`Directory.GetFiles(...)` 和`"*"` 而不是`"*.*"`。 (2认同)

Red*_*ter 24

尝试这样的事情:

static void Main(string[] args)
{
    DirSearch(@"c:\temp");
    Console.ReadKey();
}

static void DirSearch(string dir)
{
    try
    {
        foreach (string f in Directory.GetFiles(dir))
            Console.WriteLine(f);
        foreach (string d in Directory.GetDirectories(dir))
        {
            Console.WriteLine(d);
            DirSearch(d);
        }

    }
    catch (System.Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)


ton*_*est 5

String[] subDirectories;
String[] subFiles;
subDirectories = System.IO.Directory.GetDirectories("your path here");
subFiles = System.IO.Directory.GetFiles("your path here");
Run Code Online (Sandbox Code Playgroud)