在開發過程中,有時候需要取得目錄下的檔案或資料夾進行處理,在 .NET 中有一些好用的類別可以進行這些工作。
在使用之前最好在多花五分鐘看一下文件,才不會像我以前一樣自以為聰明其實是繞了遠路…
需求有時候是要取得目錄下的檔案,有時候是要取得資料夾,有時候是要取得所有檔案。
一開始使用 Directory 類別底下的 GetFiles 與 GetDirectories 兩個方法,於是我寫出了類似底下的程式碼…
只能說小時候不懂事,只求做出結果的硬幹,如果當初多花點時間看文件的話就可以少繞點遠路!
在 .NET 中有 Directory 與 DirectoryInfo 兩個類別可以取得目錄下檔案與資料夾的列表,兩者相似度非常高。
1、Directory 類別
1.1 GetFiles 方法
Directory 類別下有三個 GetFiles 多載方法,方法參數如下:
- path:目錄。
-
searchPattern:對應檔案名稱的篩選字符。
- 可搭配「*」、「?」使用。
-
searchOption:搜尋選項。
- 選擇僅只搜尋目前目錄或是包含子目錄。
可以發現,前面寫的 GetAllFiles 方法其實使用 searchOption 就可以達到目的…
1.2 GetDirectories 方法
Directory 類別下有三個 GetDirectories 多載方法,方法參數如下:
- path:目錄。
-
searchPattern:對應資料夾名稱的篩選字符。
- 可搭配「*」、「?」使用。
-
searchOption:搜尋選項。
- 選擇僅只搜尋目前目錄或是包含子目錄。
使用 GetDirectories 時,參數 searchPattern 是對最後的資料夾名稱作篩選,並不會篩選路徑中的資料夾名稱。
2、DirectoryInfo 類別
2.1 GetFiles 方法
DirectoryInfo 類別下有三個 GetFiles 多載方法,方法參數如下:
-
searchPattern:對應檔案名稱的篩選字符。
- 可搭配「*」、「?」使用。
-
searchOption:搜尋選項。
- 選擇僅只搜尋目前目錄或是包含子目錄。
2.2 GetDirectories 方法
DirectoryInfo 類別下有三個 GetDirectories 多載方法,方法參數如下:
-
searchPattern:對應資料夾名稱的篩選字符。
- 可搭配「*」、「?」使用。
-
searchOption:搜尋選項。
- 選擇僅只搜尋目前目錄或是包含子目錄。
使用 GetDirectories 時,參數 searchPattern 是對最後的資料夾名稱作篩選,並不會篩選路徑中的資料夾名稱。
- :Source Code
- MSDN:Directory
- MSDN:DirectoryInfo
嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。
如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!