我想使用多重过滤器,例如:.mp3,.jpg来检索这些类型文件的字符串数组。但遗憾的是,Directory.getfiles()无法有效地提供此功能。
我知道这个问题在这里已被多次询问,但我刚刚在http://www.beansoftware.com/ASP.NET-FAQ/Multiple-Filters-Directory.GetFiles-Method.aspx找到了一篇文章
给出了解决此问题的以下功能
public string[] getFiles(string SourceFolder, string Filter,
System.IO.SearchOption searchOption)
{
// ArrayList will hold all file names
ArrayList alFiles = new ArrayList();
// Create an array of filter string
string[] MultipleFilters = Filter.Split('|');
// for each filter find mathing file names
foreach (string FileFilter in MultipleFilters)
{
// add found file names to array list
alFiles.AddRange(Directory.GetFiles(SourceFolder, FileFilter, searchOption));
}
// returns string array of relevant file names
return (string[])alFiles.ToArray(typeof(string));
}
我想知道这个方法是否有效。如果指定驱动器例如:C:\,这个方法会搜索整个驱动器吗? 任何人都可以建议我一种方法来明确地添加子文件夹搜索到这个方法
答案 0 :(得分:0)
您还可以对总结果运行LINQ查询以获取所需文件并 union 结果