我试图从一个目录中获取其中一个扩展名:.aif、.wav、.mp3或.ogg。
我可以以某种方式将这些合并到搜索模式中吗?还是必须在每个扩展名中迭代所有文件一次?
这就是我想要的:
foreach (string filePath in Directory.GetFiles(pathRoot + "/Music/" + path, "*.mp3" || "*.aif" || "*.wav" || "*.ogg"))
{
//Do stuff
}发布于 2014-02-13 10:57:41
如果您只需要检查扩展名,那么我可以想到的最简单的解决方案是获取所有文件并将扩展名与列表进行比较:
var extList = new string[] { ".mp3", ".aif", ".wav", ".ogg" };
var files = Directory.GetFiles(pathRoot + "/Music/" + path, "*.*")
.Where(n => extList.Contains(System.IO.Path.GetExtension(n), StringComparer.OrdinalIgnoreCase))
.ToList();发布于 2014-02-13 10:57:26
没有搜索多个模式的方法,但可以编写一个:
private string[] GetFiles(string path, params string[] searchPatterns)
{
var filePaths = new List<string>();
foreach (var searchPattern in searchPatterns)
{
filePaths.AddRange(Directory.GetFiles(path, searchPattern));
}
filePaths.Sort();
return filePaths.ToArray();
}现在,您可以将其称为最初调用Directory.GetFiles并传递多个模式的地方。
https://stackoverflow.com/questions/21751991
复制相似问题