C#中的完整目录列表

Ton*_*ony -2 c#

可能重复:
如何执行完整的递归目录和文件扫描?

我找不到任何信息,如何在C#中创建一个完整的目录列表,包括其中的所有文件及其所有子文件夹的文件,即:

c:\a.jpg
c:\b.php
c:\c\d.exe
c:\e\f.png
c:\g\h.mpg
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 6

您可以使用DirectoryInfo.GetFiles("C:\*.*",SearchOption.AllDirectories);

这将返回一个FileInfo对象数组,其中包含文件名的Name和FullName属性.

话虽如此,我不会在"C:\"上执行此操作,因为您将返回一个巨大的数组,但此技术将在适当的文件夹上正常工作.

如果你使用的是.NET 4,我建议使用EnumerateFiles,它将返回一个IEnumerable<T>而不是一个数组.

请注意,上述代码很可能会失败,因为它需要完全权限才能搜索文件系统.如果您无法访问要搜索的文件系统的特定部分,则会引发SecurityException.

此外 - 如果您只对文件名而不是完整FileInfo信息感兴趣,则可以使用Directory.EnumerateFiles,它返回IEnumerable<string>包含所有相关文件名的文件名.

  • 这将回归一个巨大的阵列...... (2认同)