如何遍历C#.net目录中的所有文件?


121

我想在文件夹及其子文件夹中获取文件。以下代码不在其子文件夹中获取文件:

string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs");

谁能告诉我如何在c#.net中实现这一点?


2
我一直喜欢MSDN做事方法。在此链接的底部,它们提供了带有控制台程序(C#)的递归示例。
贾斯汀

1
@Panuvin-注意:MSDN代码有点危险。对于非常大的文件夹和子文件夹内容(许多文件),您可以获取StackOverflow异常(由于递归代码)
Joezer 2014年

Answers:


216
string[] files = 
    Directory.GetFiles(txtPath.Text, "*ProfileHandler.cs", SearchOption.AllDirectories);

最后一个参数完全影响您所指的内容。将它设置为AllDirectories每个文件,包括子文件夹中,并将其设置为TopDirectoryOnly如果你只是想在给定的,而不是子文件夹的目录中进行搜索。

有关详细信息,请参考MDSN:https ://msdn.microsoft.com/zh-cn/library/ms143316(v = vs.110).aspx


5
如果文件夹结构中存在循环,则将无限循环。请参阅msdn.microsoft.com/en-us/library/ms143448.aspx
Anthony Wieser

中间参数的目的是什么?
有用的蜜蜂2016年

2
它称为searchPattern,是用于选择文件的过滤器。在这种情况下,它将选择所有以“ ProfileHandler.cs”结尾的文件。看看MDSN
Migwell,

3

尝试下面的代码

Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs",SearchOption.AllDirectories)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.