2013-11-27 35 views
2

我發現這個代碼,獲取文件的數組了DirectoryInfo的:如何使用C#DirectoryInfo枚舉具有所有子目錄的文件?

FileInfo[] fileInfoArray = di.EnumerateFiles().Where(f => extensions.Contains(f.Extension.ToLower())).ToArray(); 

但只搜索的DirectoryInfo路徑的直接孩子。即它不包括孫子女。

我想我需要在某處添加SearchOption.AllDirectories參數,但是在哪裏?

我想:

di.EnumerateFiles(SearchOption.AllDirectories).Where(f => extensions.Contains(f.Extension.ToLower())).ToArray(); 

但它會產生錯誤。

那麼如何用模式進行搜索,包括所有子目錄?

感謝您的幫助!

回答

7

看的DirectoryInfo.EnumerateFiles重載 - 有沒有超載服用只是一個SearchOption,但你可以給一個字符串和SearchOption

var files = di.EnumerateFiles("*", SearchOption.AllDirectories) 
       .Where(f => extensions.Contains(f.Extension.ToLower())) 
       .ToArray(); 
+0

你是如此之快,我們有得分 –

+0

我沒有任何機會'不知道'「*」'。謝謝:)可以在8分鐘內接受。 – jeff

+0

這正是我所需要的,謝謝。仍然未被接受BTW:P – MC10

相關問題