Directory.GetFiles searchOption重载不起作用

本文关键字:不起作用 重载 searchOption GetFiles Directory | 更新日期: 2023-09-27 18:23:36

对于初学者来说,请注意我对C#、StackOverflow和编程都是新手。我在System.IO中使用Directory.GetFiles方法时遇到问题。除了searchOption过载之外,我的所有代码都在工作。这是我当前的代码。

string[] files = Directory.GetFiles(path:"C:/example", searchPattern:"*.txt");
foreach(string name in files) { Console.WriteLine(name); }

我遇到了麻烦,因为我希望代码段搜索目录"example"及其所有子目录。我在这里读到它应该看起来像SearchOption.AllDirectories,但当我在Visual Studio(Professional 2015)中尝试时,IntelliSense会得到看起来更像searchOption:的东西,我不知道如何将AllDirectories参数放入这个重载中。我所做的任何事情都会导致以下错误之一。

我尝试过的(上面的代码将其中一个作为第三个过载):

System.IO.SearchOption.AllDirectories-命名参数规范必须在指定所有固定参数之后出现。

searchOption:AllDirectories-名称"AllDirectories"在当前上下文中不存在。

searchOption:";所有目录"-无法从"string"转换为"System.IO.SearchOption".

等等。我已经在MSDN、Google、StackOverflow、codeproject和其他网站上做了至少3个小时的研究,但我仍然找不到答案。

Directory.GetFiles searchOption重载不起作用

试试这个:

string[] files = Directory.EnumerateFiles(stage_path,"*.txt",SearchOption.AllDirectories).ToArray();

方法调用中参数标签searchPattern:的原因是由于C#4.0 中引入的命名参数

如果按照描述的顺序传递所有参数,则不需要包含标签。

Directory.GetFiles("C:/example", "*.txt", SearchOption.AllDirectories);应该产生你想要的东西。