Directory.EnumerateFileSystemEntries 方法

定義

傳回符合指定準則之檔案系統項目的可列舉集合。

多載

EnumerateFileSystemEntries(String)

傳回指定之路徑中檔案名稱及目錄名稱的可列舉集合。

EnumerateFileSystemEntries(String, String)

傳回所指定路徑中符合搜尋模式之檔案名稱及目錄名稱的可列舉集合。

EnumerateFileSystemEntries(String, String, EnumerationOptions)

傳回所指定路徑中符合搜尋模式與列舉選項之檔案名稱及目錄名稱的可列舉集合。

EnumerateFileSystemEntries(String, String, SearchOption)

傳回指定之路徑中符合搜尋模式之檔名和目錄名稱的可列舉集合,並選擇性地搜尋子目錄。

EnumerateFileSystemEntries(String)

傳回指定之路徑中檔案名稱及目錄名稱的可列舉集合。

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFileSystemEntries(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries (string path);
static member EnumerateFileSystemEntries : string -> seq<string>
Public Shared Function EnumerateFileSystemEntries (path As String) As IEnumerable(Of String)

參數

path
String

要搜尋之目錄的相對或絕對路徑。 這個字串不會區分大小寫。

傳回

path 所指定目錄中檔案系統項目的可列舉集合。

例外狀況

.NET Framework和 2.1 之前的 .NET Core 版本: path 是長度為零的字串、只包含空白字元,或包含不正確字元。 您可以使用 GetInvalidPathChars() 方法查詢無效字元。

pathnull

path 無效,例如參考到未對應的磁碟機。

path 為檔案名稱。

指定的路徑、檔案名稱,或兩者合計超出系統定義的長度上限。

呼叫端沒有必要的權限。

呼叫端沒有必要的權限。

備註

您可以使用 參數指定相對路徑資訊 path 。 相對路徑資訊會解譯為相對於目前的工作目錄,您可以使用 方法來判斷 GetCurrentDirectory

EnumerateFileSystemEntriesGetFileSystemEntries 方法會如下所示:當您使用 EnumerateFileSystemEntries 時,可以在傳回整個集合之前開始列舉專案的集合;當您使用 GetFileSystemEntries 時,必須先等候傳回整個專案陣列,才能存取陣列。 因此,當您使用許多檔案和目錄時, EnumerateFileSystemEntries 可能會更有效率。

未快取傳回的集合;集合上的 每個呼叫 GetEnumerator 都會啟動新的列舉。

適用於

EnumerateFileSystemEntries(String, String)

傳回所指定路徑中符合搜尋模式之檔案名稱及目錄名稱的可列舉集合。

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFileSystemEntries(System::String ^ path, System::String ^ searchPattern);
public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries (string path, string searchPattern);
static member EnumerateFileSystemEntries : string * string -> seq<string>
Public Shared Function EnumerateFileSystemEntries (path As String, searchPattern As String) As IEnumerable(Of String)

參數

path
String

要搜尋之目錄的相對或絕對路徑。 這個字串不會區分大小寫。

searchPattern
String

要比對 path 中檔案系統項目名稱的搜尋字串。 這個參數可以包含有效常值路徑與萬用 (* 和 ?) 字元的組合,但是不支援規則運算式。

傳回

path 指定的目錄中,符合指定搜尋模式之檔案系統項目的可列舉集合。

例外狀況

.NET Framework和 2.1 之前的 .NET Core 版本: path 是長度為零的字串、只包含空白字元,或包含不正確字元。 您可以使用 GetInvalidPathChars() 方法查詢無效字元。

-或-

searchPattern 不包含有效模式。

pathnull

-或-

searchPatternnull

path 無效,例如參考到未對應的磁碟機。

path 為檔案名稱。

指定的路徑、檔案名稱,或兩者合計超出系統定義的長度上限。

呼叫端沒有必要的權限。

呼叫端沒有必要的權限。

備註

searchPattern 可以是常值和萬用字元的組合,但不支援正則運算式。 在 中 searchPattern 允許下列萬用字元規範。

萬用字元規範 相符項
* (星號) 該位置中的零或多個字元。
? (問號) 該位置中只有一個字元。

萬用字元以外的字元是常值字元。 例如, searchPattern 字串 「*t」 會搜尋以字母 「t」 結尾的所有名稱 path 。 字串 「s*」 會 searchPattern 以字母 「s」 開頭搜尋所有名稱 path

注意

當您在 「*.txt」 之類的 中使用 searchPattern 星號萬用字元時,指定延伸模組中的字元數會影響搜尋,如下所示:

  • 如果指定的延伸模組長度剛好三個字元,此方法會傳回副檔名開頭為指定副檔名的檔案。 例如,「*.xls」 會傳回 「book.xls」 和 「book.xlsx」。
  • 在所有其他情況下,此方法會傳回完全符合指定副檔名的檔案。 例如,「*.ai」 會傳回 「file.ai」,但不會傳回 「file.aif」。

當您使用問號萬用字元時,此方法只會傳回符合指定副檔名的檔案。 例如,在目錄中指定兩個檔案 「file1.txt」 和 「file1.txtother」,「file?.txt」 的搜尋模式只會傳回第一個檔案,而 「file*.txt」 的搜尋模式則會傳回這兩個檔案。

searchPattern 不能以兩個句點結尾 (「。」) 或包含兩個句點 (「.」。) 後面接著 DirectorySeparatorCharAltDirectorySeparatorChar ,也無法包含任何不正確字元。 您可以使用 GetInvalidPathChars 方法查詢無效字元。

您可以使用 參數指定相對路徑資訊 path 。 相對路徑資訊會解譯為相對於目前的工作目錄,您可以使用 方法來判斷 GetCurrentDirectory

EnumerateFileSystemEntriesGetFileSystemEntries 方法會如下所示:當您使用 EnumerateFileSystemEntries 時,可以在傳回整個集合之前開始列舉專案的集合;當您使用 GetFileSystemEntries 時,必須先等候傳回整個專案陣列,才能存取陣列。 因此,當您使用許多檔案和目錄時, EnumerateFileSystemEntries 可能會更有效率。

未快取傳回的集合;集合上的 每個呼叫 GetEnumerator 都會啟動新的列舉。

適用於

EnumerateFileSystemEntries(String, String, EnumerationOptions)

傳回所指定路徑中符合搜尋模式與列舉選項之檔案名稱及目錄名稱的可列舉集合。

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFileSystemEntries(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateFileSystemEntries : string * string * System.IO.EnumerationOptions -> seq<string>
Public Shared Function EnumerateFileSystemEntries (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of String)

參數

path
String

要搜尋之目錄的相對或絕對路徑。 這個字串不會區分大小寫。

searchPattern
String

要比對 path 中子目錄名稱的搜尋字串。 這個參數可以包含有效常值與萬用字元的組合,但是不支援規則運算式。

enumerationOptions
EnumerationOptions

物件,描述要使用的搜尋和列舉組態。

傳回

path 指定的目錄中,符合所指定搜尋模式與指定列舉選項之檔案系統項目的可列舉集合。

例外狀況

.NET Framework和 2.1 之前的 .NET Core 版本: path 是長度為零的字串、只包含空白字元,或包含不正確字元。 您可以使用 GetInvalidPathChars() 方法查詢無效字元。

-或-

searchPattern 不包含有效模式。

pathnull

-或-

searchPatternnull

searchOption 不是有效的 SearchOption 值。

path 無效,例如參考到未對應的磁碟機。

path 為檔案名稱。

指定的路徑、檔案名稱,或兩者合計超出系統定義的長度上限。

呼叫端沒有必要的權限。

呼叫端沒有必要的權限。

備註

searchPattern 可以是常值和萬用字元的組合,但不支援正則運算式。 在 中 searchPattern 允許下列萬用字元規範。

萬用字元規範 相符項
* (星號) 該位置中的零或多個字元。
? (問號) 該位置中只有一個字元。

萬用字元以外的字元是常值字元。 例如, searchPattern 字串 「*t」 會搜尋以字母 「t」 結尾的所有名稱 path 。 字串 searchPattern 「s*」 會搜尋以字母 「s」 開頭的所有名稱 path

注意

當您在 「*.txt」 之類的 中使用 searchPattern 星號萬用字元時,指定副檔名中的字元數會影響搜尋,如下所示:

  • 如果指定的副檔名剛好是三個字元長,此方法會傳回副檔名開頭為指定副檔名的檔案。 例如,「*.xls」 會同時傳回 「book.xls」 和 「book.xlsx」。
  • 在其他所有情況下,方法會傳回完全符合指定副檔名的檔案。 例如,「*.ai」 會傳回 「file.ai」,但不會傳回 「file.aif」。

當您使用問號萬用字元時,這個方法只會傳回符合指定副檔名的檔案。 例如,假設在目錄中有兩個檔案 「file1.txt」 和 「file1.txtother」,則 「file?.txt」 的搜尋模式只會傳回第一個檔案,而 「file*.txt」 的搜尋模式則會傳回這兩個檔案。

searchPattern 不能以兩個句號結尾 (」。」) 或包含兩個 (句點」。」) 後面 DirectorySeparatorChar 接著 或 AltDirectorySeparatorChar ,也無法包含任何無效字元。 您可以使用 GetInvalidPathChars 方法查詢無效字元。

您可以使用 參數指定相對路徑資訊 path 。 相對路徑資訊會解譯為相對於目前工作目錄,您可以使用 方法來判斷 GetCurrentDirectory

EnumerateFileSystemEntriesGetFileSystemEntries 方法會如下所示:當您使用 EnumerateFileSystemEntries 時,可以在傳回整個集合之前開始列舉專案的集合;當您使用 GetFileSystemEntries 時,必須先等候傳回整個專案陣列,才能存取陣列。 因此,當您使用許多檔案和目錄時, EnumerateFileSystemEntries 可能會更有效率。

未快取傳回的集合;集合上的 每個呼叫 GetEnumerator 都會啟動新的列舉。

適用於

EnumerateFileSystemEntries(String, String, SearchOption)

傳回指定之路徑中符合搜尋模式之檔名和目錄名稱的可列舉集合,並選擇性地搜尋子目錄。

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFileSystemEntries(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries (string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateFileSystemEntries : string * string * System.IO.SearchOption -> seq<string>
Public Shared Function EnumerateFileSystemEntries (path As String, searchPattern As String, searchOption As SearchOption) As IEnumerable(Of String)

參數

path
String

要搜尋之目錄的相對或絕對路徑。 這個字串不會區分大小寫。

searchPattern
String

要比對 path 中檔案系統項目的搜尋字串。 這個參數可以包含有效常值路徑與萬用 (* 和 ?) 字元的組合,但是不支援規則運算式。

searchOption
SearchOption

其中一個列舉值,該值會指定搜尋作業應該只包含目前目錄還是包含所有子目錄。 預設值是 TopDirectoryOnly

傳回

path 指定的目錄中,符合指定搜尋模式和選項之檔案系統項目的可列舉集合。

例外狀況

.NET Framework和 2.1 之前的 .NET Core 版本: path 是長度為零的字串、只包含空白字元,或包含無效字元。 您可以使用 GetInvalidPathChars() 方法查詢無效字元。

-或-

searchPattern 不包含有效模式。

pathnull

-或-

searchPatternnull

searchOption 不是有效的 SearchOption 值。

path 無效,例如參考到未對應的磁碟機。

path 為檔案名稱。

指定的路徑、檔案名稱,或兩者合計超出系統定義的長度上限。

呼叫端沒有必要的權限。

呼叫端沒有必要的權限。

備註

searchPattern 可以是常值和萬用字元的組合,但不支援正則運算式。 在 中 searchPattern 允許下列萬用字元規範。

萬用字元規範 相符項
* (星號) 該位置中的零或多個字元。
? (問號) 該位置中只有一個字元。

萬用字元以外的字元是常值字元。 例如, searchPattern 字串 「*t」 會搜尋以字母 「t」 結尾的所有名稱 path 。 字串 searchPattern 「s*」 會搜尋以字母 「s」 開頭的所有名稱 path

注意

當您在 「*.txt」 之類的 中使用 searchPattern 星號萬用字元時,指定副檔名中的字元數會影響搜尋,如下所示:

  • 如果指定的副檔名剛好是三個字元長,此方法會傳回副檔名開頭為指定副檔名的檔案。 例如,「*.xls」 會同時傳回 「book.xls」 和 「book.xlsx」。
  • 在其他所有情況下,方法會傳回完全符合指定副檔名的檔案。 例如,「*.ai」 會傳回 「file.ai」,但不會傳回 「file.aif」。

當您使用問號萬用字元時,這個方法只會傳回符合指定副檔名的檔案。 例如,假設在目錄中有兩個檔案 「file1.txt」 和 「file1.txtother」,則 「file?.txt」 的搜尋模式只會傳回第一個檔案,而 「file*.txt」 的搜尋模式則會傳回這兩個檔案。

searchPattern 不能以兩個句號結尾 (」。」) 或包含兩個 (句點」。」) 後面 DirectorySeparatorChar 接著 或 AltDirectorySeparatorChar ,也無法包含任何無效字元。 您可以使用 GetInvalidPathChars 方法查詢無效字元。

您可以使用 參數指定相對路徑資訊 path 。 相對路徑資訊會解譯為相對於目前工作目錄,您可以使用 方法來判斷 GetCurrentDirectory

EnumerateFileSystemEntriesGetFileSystemEntries 方法會如下所示:當您使用 EnumerateFileSystemEntries 時,可以在傳回整個集合之前開始列舉專案的集合;當您使用 GetFileSystemEntries 時,必須先等候傳回整個專案陣列,才能存取陣列。 因此,當您使用許多檔案和目錄時, EnumerateFileSystemEntries 可能會更有效率。

未快取傳回的集合;集合上的 每個呼叫 GetEnumerator 都會啟動新的列舉。

適用於