在一个目录中搜索.net中几种类型的所有文件
本文关键字:类型 几种 文件 搜索 一个 net | 更新日期: 2023-09-27 17:51:17
假设我有一个类似".vcproj;.csproj;* "的字符串。我想在一个目录中显示所有这些类型的文件…Windows在打开文件对话框中一直这样做。
我知道Directory.GetFiles
,但它只让我运行一个给定的搜索模式,所以我必须分割我的输入,然后循环每个。
有没有内置的功能来做到这一点,之后所有的打开文件对话框?
。所以没有LINQ的聪明才智是可用的!
试试:
string[] formats = {".jpg", ".png", ".txt"};
var files = Directory.GetFiles("C:''");
var neededFiles = files.
Where(file => formats.Any(file.EndsWith)).
ToArray();
对于。net 2.0:
var desiredFiles = new List<string>(files.Length);
foreach (var file in files)
{
foreach (var format in formats)
if (file.EndsWith(format))
{
desiredFiles.Add(file);
break;
}
}
您可以使用垂直管道'|'进行RegEx转换。我认为你的最终代码应该是这样的:
string input_files = ".vcproj;.csproj;*.sln";
string search_for = input_files.Replace(".","'.").Replace(";","|")
Directory.GetFiles("/path/to/directory",search_for)
我从来没有在。net中做过任何编码,所以如果我的语法是错误的,我道歉。显然,如果搜索词的初始字符串以有效的正则表达式开始,可以节省一些时间。