2012-10-08 94 views
2

我有一個目錄結構,通過進行篩選,我需要能夠指定頂層文件夾,一個典型的例子是:是否可以在Directory.GetFiles中指定目錄通配符?

c:\folder1\1\targetfolder 
c:\folder1\2\targetfolder 
c:\folder1\3\targetfolder 
c:\folder1\4\targetfolder 

我想獲得所謂targetfolder文件夾中的每個文件,指定這似乎失敗:

Directory.GetFiles("c:\folder1\*\targetfolder"); 

是否有一個快速和簡單的方法來實現呢?

+0

中存在一個名爲targetfolder fodlers內的文件試試**代替,這是什麼他們的MSBuild使用。 – leppie

+0

已經嘗試**,同樣的例外... – Mantorok

回答

0

試圖用這個和工作,但你可以得到誤報,如果有文件或文件夾的根路徑內用相同的模式

var files = Directory.GetFiles("c:\\folder1", "*.*", 
     SearchOption.AllDirectories).Where(n => n.Contains("\\targetfolder\\")); 
0

這對我的作品,並且沒有副作用,如果你有名爲targetfolder或類似的文件。

Directory.GetDirectories(
    @"c:\folder1\", 
    @"targetfolder", 
    SearchOption.AllDirectories) 
    .SelectMany(dir => Directory.GetFiles(dir, "*", SearchOption.TopDirectoryOnly)) 

這將讓你只有文件夾c:\folder1\

相關問題