0
可能重复:
GetFiles with multiple extentionsDirectory.getfiles()与多个通配符或过滤器替代在C#
我想使用多个过滤器如: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:\被指定,这个方法是否会搜索整个驱动器? 任何人都可以给我建议的方法来添加子文件夹中搜索以这种方法明确