C# 中的完整目录列表
本文关键字:列表 | 更新日期: 2023-09-27 18:36:01
可能的重复项:
如何执行完整的递归目录和文件扫描?
我找不到任何信息,如何在 C# 中创建完整的目录列表,包括内部的所有文件及其所有子文件夹的文件,即:
c:'a.jpg
c:'b.php
c:'c'd.exe
c:'e'f.png
c:'g'h.mpg
您可以使用
DirectoryInfo.GetFiles("C:''*.*", SearchOption.AllDirectory);
这将返回一个FileInfo
对象的数组,其中包括文件名的 Name 和 FullName 属性。
话虽如此,我不会在"C:''"上执行此操作,因为您将返回一个巨大的数组,但此技术将在适当的文件夹中正常工作。
如果您使用的是 .NET 4,我建议改用 EnumerateFiles,它将返回IEnumerable<T>
而不是数组。
请注意,上面的代码很可能会失败,因为它需要完全权限才能搜索文件系统。 如果您无法访问您尝试搜索的文件系统的特定部分,则会引发 SecurityException。
另外 - 如果您只对文件名感兴趣,而不是完整的FileInfo
信息,则可以改用 Directory.EnumerateFiles,它会返回包含所有相关文件名的IEnumerable<string>
。
有一篇 MSDN 文章,其中包含代码示例来执行此操作。
这是钱:
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);
}
}