Directory.EnumerateFileSystemEntries 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回符合指定準則之檔案系統項目的可列舉集合。
多載
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() 方法查詢無效字元。
path
為 null
。
path
無效,例如參考到未對應的磁碟機。
path
為檔案名稱。
指定的路徑、檔案名稱,或兩者合計超出系統定義的長度上限。
呼叫端沒有必要的權限。
呼叫端沒有必要的權限。
備註
您可以使用 參數指定相對路徑資訊 path
。 相對路徑資訊會解譯為相對於目前的工作目錄,您可以使用 方法來判斷 GetCurrentDirectory 。
EnumerateFileSystemEntries和 GetFileSystemEntries 方法會如下所示:當您使用 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
不包含有效模式。
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
不能以兩個句點結尾 (「。」) 或包含兩個句點 (「.」。) 後面接著 DirectorySeparatorChar 或 AltDirectorySeparatorChar ,也無法包含任何不正確字元。 您可以使用 GetInvalidPathChars 方法查詢無效字元。
您可以使用 參數指定相對路徑資訊 path
。 相對路徑資訊會解譯為相對於目前的工作目錄,您可以使用 方法來判斷 GetCurrentDirectory 。
EnumerateFileSystemEntries和 GetFileSystemEntries 方法會如下所示:當您使用 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
不包含有效模式。
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 。
EnumerateFileSystemEntries和 GetFileSystemEntries 方法會如下所示:當您使用 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
不包含有效模式。
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 。
EnumerateFileSystemEntries和 GetFileSystemEntries 方法會如下所示:當您使用 EnumerateFileSystemEntries 時,可以在傳回整個集合之前開始列舉專案的集合;當您使用 GetFileSystemEntries 時,必須先等候傳回整個專案陣列,才能存取陣列。 因此,當您使用許多檔案和目錄時, EnumerateFileSystemEntries 可能會更有效率。
未快取傳回的集合;集合上的 每個呼叫 GetEnumerator 都會啟動新的列舉。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將推出:在 2024 年,我們將隨著內容的意見反應機制逐步淘汰 GitHub 問題,並以新的意見反應系統來取代。 如需詳細資訊,請參閱提交並檢視相關的意見反應