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

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

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

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

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

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

尝试这样的事情:

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); } } 

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

 string[] files = Directory.GetFiles(@"c:\files\folder1\", "*.*", SearchOption.AllDirectories); foreach (var file in files) { Console.WriteLine(file); } 

请注意, SearchOption参数可用于控制搜索是否是递归的( SearchOption.AllDirectories )( SearchOption.TopDirectoryOnly )。

 String[] subDirectories; String[] subFiles; subDirectories = System.IO.Directory.GetDirectories("your path here"); subFiles = System.IO.Directory.GetFiles("your path here"); 

使用System.IO.Directory类及其方法

我记得不久前在SO上解决类似的问题,尽管它是在VB中。 这是问题所在 。