可能重复:
How can I perform full recursive directory & file scan?
我找不到任何信息,如何在C#中创建完整的目录列表,包括其中的所有文件及其所有子文件夹的文件,即:
c:\a.jpg
c:\b.php
c:\c\d.exe
c:\e\f.png
c:\g\h.mpg
答案 0 :(得分:6)
您可以使用DirectoryInfo.GetFiles(“C:\ *。*”,SearchOption.AllDirectories);
这将返回一个FileInfo
个对象数组,其中包含文件名的Name和FullName属性。
话虽如此,我不会在“C:\”上执行此操作,因为您将返回巨大的数组,但此技术可在适当的文件夹上正常工作。
如果你使用的是.NET 4,我建议改用EnumerateFiles,这将返回IEnumerable<T>
而不是数组。
请注意,上述代码很可能会失败,因为它需要完全权限才能搜索文件系统。如果您无法访问要搜索的文件系统的特定部分,则会引发SecurityException。
此外 - 如果您只对文件名感兴趣而不是完整的FileInfo
信息,则可以使用Directory.EnumerateFiles代替IEnumerable<string>
与所有相关的文件名。
答案 1 :(得分:0)
有MSDN Article代码示例可以做到这一点。
这是钱:
void DirSearch(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
foreach (string f in Directory.GetFiles(d, txtFile.Text))
{
lstFilesFound.Items.Add(f);
}
DirSearch(d);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}