对于初学者来说,请注意我是C#,StackOverflow和一般编程的新手。我在Directory.GetFiles
中遇到System.IO
方法时遇到问题。我的所有代码都工作,除了searchOption
重载。这是我目前的代码。
string[] files = Directory.GetFiles(path:"C:/example", searchPattern:"*.txt");
foreach(string name in files) { Console.WriteLine(name); }
我遇到了麻烦,因为我希望代码段能够搜索目录'例如'及其所有子目录。我已经阅读here它应该看起来像SearchOption.AllDirectories
,但是当我在Visual Studio(Professional 2015)中尝试时,IntelliSense会提取看起来更像{{ {1}},我无法弄清楚如何将searchOption:
参数放入此重载中。我做的任何事都会导致以下错误之一。
我尝试了什么(以上代码中的一个作为第三个重载):
System.IO.SearchOption.AllDirectories - 命名参数规范必须在指定了所有固定参数后出现。
searchOption:AllDirectories - 名称' AllDirectories'在当前背景下不存在。
searchOption:" AllDirectories" - 无法转换为' string'到' System.IO.SearchOption'。
等等。我已经在MSDN,Google,StackOverflow,codeproject和其他方面对该主题进行了至少3个小时的研究,但我仍然无法找到答案。
答案 0 :(得分:1)
请改为尝试:
string[] files = Directory.EnumerateFiles(stage_path,"*.txt",SearchOption.AllDirectories).ToArray();
答案 1 :(得分:1)
方法调用中参数标签searchPattern:
的原因是由命名参数引起的,这些参数是在C#4.0中引入的
如果按照所述顺序传递所有参数,则不需要包含标签。
Directory.GetFiles("C:/example", "*.txt", SearchOption.AllDirectories);
应该产生你想要的东西。