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

回答

0

您也可以運行在總成績LINQ查詢得到你想要的文件和工會結果