這個真的是迷思啊~

從線上說明尋找

會陷入要用 FOR 迴圈先在目錄下找一遍檔案

再用一次 FOR 迴圈找所有的子目錄

在子目錄中再用 FOR 迴圈找檔案

就會變成了

for 檔案

for 子目錄

 for 檔案

 

可是

這樣顯得檔案搜尋部分重複動作了

後來發現到

原來在參數地方有提供找檔案時,可一並搜尋子目錄啊~

 

GetFiles(String, String, EnumerationOptions) 

 

重點就在第三個參數-EnumerationOptions

有幾個選項

IO.SearchOption.AllDirectories -> 搜尋所有子目錄

IO.SearchOption.TopDirectoryOnly -> 不搜尋子目錄

 

所以只要這樣寫

For Each strMbsaXml In strSource.GetFiles("*.xml", IO.SearchOption.AllDirectories)

(要執行的動作)

Next

 

就可以搜尋目錄(含子目錄)底下,所有的 XML 檔案了~

真的是找好久啊~

但是發現這樣挺好用的

因為迴圈只要一個就好,程式碼也清楚多了