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:\被指定,這個方法是否會搜索整個驅動器? 任何人都可以給我建議的方法來添加子文件夾中搜索以這種方法明確