我正在尝试使用Directory.GetFiles()命令的多个过滤器。
所以说我想要匹配.html和.css文件。我正在使用这个:
Directory.GetFiles(path,"*.html|*.css");
我没有看到任何文档但是支持它,并且它最终不匹配HTML或CSS文件。有什么我想念的吗?
答案 0 :(得分:3)
Directory.GetFiles函数不支持多个过滤器。我的解决方案:
string patter = "*.jpg|*.png|*.gif";
string[] filters = patter.Split('|');
foreach(string filter in filters )
{
// call Directory.GetFiles(path, filter) here;
}
答案 1 :(得分:1)
还有一种下降解决方案可以避免foreach循环(在Linq的帮助下):
string[] filters = new[]{"*.jpg", "*.png", "*.gif"};
string[] filePaths = filters.SelectMany(f => Directory.GetFiles(basePath, f)).ToArray();
答案 2 :(得分:0)
之前已经问过这个问题(https://stackoverflow.com/questions/163162)并建议使用LINQ过滤结果的解决方案