0

我正在尝试将多个过滤器与 Directory.GetFiles() 命令一起使用。

所以说我想同时匹配 .html 和 .css 文件。我正在使用这个:

Directory.GetFiles(path,"*.html|*.css");

但是,我没有看到任何支持此功能的文档,并且最终与 HTML 或 CSS 文件都不匹配。有什么我想念的吗?

4

2 回答 2

3

Directory.GetFiles 函数不支持多个过滤器。我的解决方案:

string patter = "*.jpg|*.png|*.gif";
string[] filters = patter.Split('|');
foreach(string filter in filters )
{
  // call Directory.GetFiles(path, filter) here;
}
于 2011-01-05T11:16:35.353 回答
1

还有一个避免 foreach 循环的下降解决方案(在 Linq 的帮助下):

string[] filters = new[]{"*.jpg", "*.png", "*.gif"};
string[] filePaths = filters.SelectMany(f => Directory.GetFiles(basePath, f)).ToArray();
于 2013-03-22T12:23:11.823 回答