【.NET】取得目錄下檔案與資料夾

  • 8639
  • 0
  • 2017-08-11

  在開發過程中,有時候需要取得目錄下的檔案或資料夾進行處理,在 .NET 中有一些好用的類別可以進行這些工作。

  在使用之前最好在多花五分鐘看一下文件,才不會像我以前一樣自以為聰明其實是繞了遠路…

  需求有時候是要取得目錄下的檔案,有時候是要取得資料夾,有時候是要取得所有檔案。

  一開始使用 Directory 類別底下的 GetFiles 與 GetDirectories 兩個方法,於是我寫出了類似底下的程式碼…

01:Error_Sample

  只能說小時候不懂事,只求做出結果的硬幹,如果當初多花點時間看文件的話就可以少繞點遠路!

  在 .NET 中有 DirectoryDirectoryInfo 兩個類別可以取得目錄下檔案與資料夾的列表,兩者相似度非常高。

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 是對最後的資料夾名稱作篩選,並不會篩選路徑中的資料夾名稱。

嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。

如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!