在一个目录中搜索.net中几种类型的所有文件

本文关键字:类型 几种 文件 搜索 一个 net | 更新日期: 2023-09-27 17:51:17

假设我有一个类似".vcproj;.csproj;* "的字符串。我想在一个目录中显示所有这些类型的文件…Windows在打开文件对话框中一直这样做。

我知道Directory.GetFiles,但它只让我运行一个给定的搜索模式,所以我必须分割我的输入,然后循环每个。

有没有内置的功能来做到这一点,之后所有的打开文件对话框?

。所以没有LINQ的聪明才智是可用的!

在一个目录中搜索.net中几种类型的所有文件

试试:

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中做过任何编码,所以如果我的语法是错误的,我道歉。显然,如果搜索词的初始字符串以有效的正则表达式开始,可以节省一些时间。