C# DirectoryInfo.GetDirectory的多模式
我将能够从响应倍数模式的direcotryInfo数组中找到目录。 我想找到所有文件夹名=cli\uu或=fou\u 我将其编码为:C# DirectoryInfo.GetDirectory的多模式,c#,string,linq,directoryinfo,C#,String,Linq,Directoryinfo,我将能够从响应倍数模式的direcotryInfo数组中找到目录。 我想找到所有文件夹名=cli\uu或=fou\u 我将其编码为: string searchPattern = "cli_*,fou_*"; foreach (DirectoryInfo Dir in dInfo.GetDirectories("*", SearchOption.AllDirectories).Where(s=>searchPattern.Contains(s.ToString().ToLower()))
string searchPattern = "cli_*,fou_*";
foreach (DirectoryInfo Dir in dInfo.GetDirectories("*", SearchOption.AllDirectories).Where(s=>searchPattern.Contains(s.ToString().ToLower())))
{
.....
}
但我不返回任何目录
有什么想法吗
解决办法是什么
foreach (DirectoryInfo Dir in dInfo.GetDirectories("*", SearchOption.AllDirectories))
{
Match regexOne = Regex.Match(Dir.Name, "cli_*", RegexOptions.IgnoreCase);
Match regexTwo = Regex.Match(Dir.Name, "fou_*", RegexOptions.IgnoreCase);
if (!(regexOne.Success) && !(regexTwo.Success))
{
continue;
}
}
非常感谢:您不能用逗号分隔搜索模式来搜索多个目录。您需要使用两种搜索模式调用GetDirectory两次,或者获取所有目录并编写自己的代码来筛选目录。好的,谢谢,我编辑的解决方案正确吗?不要在问题中发布解决方案。相反,将其作为答案发布。可以回答您自己关于StackOverflow的问题:-另外:试试你的代码。星号在正则表达式中不起作用。您可能需要类似Dir.Name.StartsWithcli的内容_