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个小时的研究,但我仍然找不到答案。
试试这个:
string[] files = Directory.EnumerateFiles(stage_path,"*.txt",SearchOption.AllDirectories).ToArray();
方法调用中参数标签searchPattern:
的原因是由于C#4.0 中引入的命名参数
如果按照描述的顺序传递所有参数,则不需要包含标签。
Directory.GetFiles("C:/example", "*.txt", SearchOption.AllDirectories);
应该产生你想要的东西。