Directory.EnumerateFiles Directory.EnumerateFiles Directory.EnumerateFiles Directory.EnumerateFiles Method

定義

傳回符合指定準則之檔案名稱的可列舉集合。Returns an enumerable collection of file names that meet specified criteria.

多載

EnumerateFiles(String, String, EnumerationOptions) EnumerateFiles(String, String, EnumerationOptions) EnumerateFiles(String, String, EnumerationOptions)
EnumerateFiles(String, String, SearchOption) EnumerateFiles(String, String, SearchOption) EnumerateFiles(String, String, SearchOption)

傳回指定之路徑中符合搜尋模式之檔名的可列舉集合,並選擇性地搜尋子目錄。Returns an enumerable collection of file names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String)

傳回指定之路徑中檔案名稱的可列舉集合。Returns an enumerable collection of file names in a specified path.

EnumerateFiles(String, String) EnumerateFiles(String, String) EnumerateFiles(String, String) EnumerateFiles(String, String)

傳回指定之路徑中符合搜尋模式之檔名的可列舉集合。Returns an enumerable collection of file names that match a search pattern in a specified path.

EnumerateFiles(String, String, EnumerationOptions) EnumerateFiles(String, String, EnumerationOptions) EnumerateFiles(String, String, EnumerationOptions)

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateFiles : string * string * System.IO.EnumerationOptions -> seq<string>

參數

searchPattern
String String String String

傳回

EnumerateFiles(String, String, SearchOption) EnumerateFiles(String, String, SearchOption) EnumerateFiles(String, String, SearchOption)

傳回指定之路徑中符合搜尋模式之檔名的可列舉集合,並選擇性地搜尋子目錄。Returns an enumerable collection of file names that match a search pattern in a specified path, and optionally searches subdirectories.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateFiles : string * string * System.IO.SearchOption -> seq<string>

參數

path
String String String String

要搜尋之目錄的相對或絕對路徑。The relative or absolute path to the directory to search. 這個字串不會區分大小寫。This string is not case-sensitive.

searchPattern
String String String String

要比對 path 中檔案名稱的搜尋字串。The search string to match against the names of files in path. 這個參數可以包含有效常值路徑與萬用 (* 和 ?) 字元的組合,但是不支援規則運算式。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption SearchOption SearchOption SearchOption

其中一個列舉值,該值會指定搜尋作業應該只包含目前目錄還是包含所有子目錄。One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories.

預設值為 TopDirectoryOnlyThe default value is TopDirectoryOnly.

傳回

path 指定的目錄中,符合指定搜尋模式和選項的檔案之完整名稱 (包括路徑) 的可列舉集合。An enumerable collection of the full names (including paths) for the files in the directory specified by path and that match the specified search pattern and option.

例外狀況

path 為零長度字串、只包含空格或包含無效字元。path is a zero-length string, contains only white space, or contains invalid characters. 您可以使用 GetInvalidPathChars() 方法查詢無效字元。You can query for invalid characters by using the GetInvalidPathChars() method.

-或--or- searchPattern 不包含有效模式。searchPattern does not contain a valid pattern.

pathnullpath is null.

-或--or- searchPatternnullsearchPattern is null.

path 無效,例如參考到未對應的磁碟機。path is invalid, such as referring to an unmapped drive.

path 為檔案名稱。path is a file name.

指定的路徑、檔案名稱,或兩者合計超出系統定義的長度上限。The specified path, file name, or combined exceed the system-defined maximum length.

呼叫端沒有必要的權限。The caller does not have the required permission.

呼叫端沒有必要的權限。The caller does not have the required permission.

範例

下列範例示範如何擷取目錄和其子目錄中的所有文字檔案,並將其移至新的目錄。The following example shows how to retrieve all the text files in a directory and its subdirectories, and move them to a new directory. 不會移動檔案之後,它們不再存在於原始的目錄。After the files are moved, they no longer exist in the original directories.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories);

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories)

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

下列範例以遞迴方式列舉所有副檔名為.txt 的檔案讀取的檔案,每一行,並顯示列,如果它包含字串"Microsoft"。The following example recursively enumerates all files that have a .txt extension, reads each line of the file, and displays the line if it contains the string "Microsoft".

using System;
using System.IO;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath =
            Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file)
                        where line.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine($"{f.File}\t{f.Line}");
            }
            Console.WriteLine($"{files.Count().ToString()} files found.");
        }
        catch (UnauthorizedAccessException uAEx)
        {
            Console.WriteLine(uAEx.Message);
        }
        catch (PathTooLongException pathEx)
        {
            Console.WriteLine(pathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Xml.Linq

Module Module1

    Sub Main()
        Try
            Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        From line In File.ReadLines(chkFile)
                        Where line.Contains("Microsoft")
                        Select New With {.curFile = chkFile, .curLine = line}

            For Each f In files
                Console.WriteLine($"{f.File}\t{f.Line}")
            Next
            Console.WriteLine($"{files.Count} files found.")
        Catch uAEx As UnauthorizedAccessException
            Console.WriteLine(uAEx.Message)
        Catch pathEx As PathTooLongException
            Console.WriteLine(pathEx.Message)
        End Try
    End Sub
End Module

備註

searchPattern 可以是常值與萬用字元字元的組合,但它不支援規則運算式。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. 允許使用下列萬用字元規範searchPatternThe following wildcard specifiers are permitted in searchPattern.

萬用字元規範Wildcard specifier 符合Matches
* (星號)* (asterisk) 在該位置的零或多個字元。Zero or more characters in that position.
?? (問號)(question mark) 該位置中的零個或一個字元。Zero or one character in that position.

非萬用字元的字元是常值字元。Characters other than the wildcard are literal characters. 比方說,searchPattern字串 」*t 」 中的所有名稱搜尋path結尾字母"t"。For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". searchPattern字串"s*」 中的所有名稱搜尋path開頭為字母"s"。The searchPattern string "s*" searches for all names in path beginning with the letter "s".

注意

當您使用星號萬用字元,在searchPattern這類 「*.txt 」,在指定的延伸模組中的字元數會影響搜尋,如下所示:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • 如果指定的延伸模組是剛好三個字元,則這個方法會傳回具有延伸模組可開始具有指定副檔名的檔案。If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. 例如,"*.xls"傳回"book.xls 」 和 「 book.xlsx"。For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • 在其他情況下,這個方法會傳回完全符合指定的延伸模組的檔案。In all other cases, the method returns files that exactly match the specified extension. 例如,"*.ai"會傳回 「 file.ai",而不是 「 file.aif"。For example, "*.ai" returns "file.ai" but not "file.aif".

當您使用問號萬用字元時,則這個方法會傳回符合指定的副檔名的檔案。When you use the question mark wildcard character, this method returns only files that match the specified file extension. 例如,假設"file1.txt"和"file1.txtother 」,兩個檔案,在目錄中,搜尋模式的 「 檔案?。txt"會傳回只是第一個檔案,而搜尋模式的 「 檔案*.txt"會傳回這兩個檔案。For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

searchPattern 結尾不能兩個句點 ("...") 或包含兩個句點 ("...") 後面接著DirectorySeparatorCharAltDirectorySeparatorChar,也不能包含任何無效的字元。searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. 您可以使用 GetInvalidPathChars 方法查詢無效字元。You can query for invalid characters by using the GetInvalidPathChars method.

您可以指定相對路徑的資訊與path參數。You can specify relative path information with the path parameter. 相對路徑的資訊會相對於目前工作目錄,您可以使用判斷解譯GetCurrentDirectory方法。Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFilesGetFiles方法的差異,如下所示:當您使用EnumerateFiles,您可以開始列舉的名稱集合,則會傳回整個集合之前,當您使用GetFiles,您必須等到整個陣列的名稱,才能存取陣列傳回。The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. 因此,當您使用許多檔案和目錄、EnumerateFiles可能會更有效率。Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

不會快取傳回的集合;每次呼叫GetEnumerator集合上將會啟動新的列舉型別。The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String)

傳回指定之路徑中檔案名稱的可列舉集合。Returns an enumerable collection of file names in a specified path.

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

參數

path
String String String String

要搜尋之目錄的相對或絕對路徑。The relative or absolute path to the directory to search. 這個字串不會區分大小寫。This string is not case-sensitive.

傳回

path 指定的目錄中,檔案完整名稱 (包括路徑) 的可列舉集合。An enumerable collection of the full names (including paths) for the files in the directory specified by path.

例外狀況

path 為零長度字串、只包含空格或包含無效字元。path is a zero-length string, contains only white space, or contains invalid characters. 您可以使用 GetInvalidPathChars() 方法查詢無效字元。You can query for invalid characters by using the GetInvalidPathChars() method.

path 無效,例如指向未對應的磁碟機。path is invalid, such as referring to an unmapped drive.

path 為檔案名稱。path is a file name.

指定的路徑、檔案名稱,或兩者合計超出系統定義的長度上限。The specified path, file name, or combined exceed the system-defined maximum length.

呼叫端沒有必要的權限。The caller does not have the required permission.

呼叫端沒有必要的權限。The caller does not have the required permission.

範例

下列範例示範如何擷取目錄中的所有檔案,並將其移至新的目錄。The following example shows how to retrieve all the files in a directory and move them to a new directory. 不會移動檔案之後,它們不再存在於原始的目錄。After the files are moved, they no longer exist in the original directory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory);

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory)

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

下列範例會列舉指定的目錄中的檔案讀取的檔案,每一行,並顯示列,如果它包含字串 「 歐洲 」。The following example enumerates the files in the specified directory, reads each line of the file, and displays the line if it contains the string "Europe".

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // LINQ query for all files containing the word 'Europe'.
            var files = from file in 
                Directory.EnumerateFiles(@"\\archives1\library\")
                where file.ToLower().Contains("europe")
                select file;

            foreach (var file in files)
            {
                Console.WriteLine("{0}", file);
            }
            Console.WriteLine("{0} files found.", files.Count<string>().ToString());
        }
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Linq
Module Module1

    Sub Main()
        Try
            ' LINQ query for all files containing the word 'Europe'.
            Dim files = From file In Directory.EnumerateFiles("\\archives1\library\")
                Where file.ToLower().Contains("europe")

            For Each file In files
                Console.WriteLine("{0}", file)
            Next
            Console.WriteLine("{0} files found.", files.Count.ToString())
        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub

End Module

備註

您可以指定相對路徑的資訊與path參數。You can specify relative path information with the path parameter. 相對路徑的資訊會相對於目前工作目錄,您可以使用判斷解譯GetCurrentDirectory方法。Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFilesGetFiles方法的差異,如下所示:當您使用EnumerateFiles,您可以開始列舉的名稱集合,則會傳回整個集合之前,當您使用GetFiles,您必須等到整個陣列的名稱,才能存取陣列傳回。The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. 因此,當您使用許多檔案和目錄、EnumerateFiles可能會更有效率。Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

不會快取傳回的集合;每次呼叫GetEnumerator集合上將會啟動新的列舉型別。The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateFiles(String, String) EnumerateFiles(String, String) EnumerateFiles(String, String) EnumerateFiles(String, String)

傳回指定之路徑中符合搜尋模式之檔名的可列舉集合。Returns an enumerable collection of file names that match a search pattern in a specified path.

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

參數

path
String String String String

要搜尋之目錄的相對或絕對路徑。The relative or absolute path to the directory to search. 這個字串不會區分大小寫。This string is not case-sensitive.

searchPattern
String String String String

要比對 path 中檔案名稱的搜尋字串。The search string to match against the names of files in path. 這個參數可以包含有效常值路徑與萬用 (* 和 ?) 字元的組合,但是不支援規則運算式。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

傳回

path 指定的目錄中,符合指定搜尋模式的檔案之完整名稱 (包括路徑) 的可列舉集合。An enumerable collection of the full names (including paths) for the files in the directory specified by path and that match the specified search pattern.

例外狀況

path 為零長度字串、只包含空格或包含無效字元。path is a zero-length string, contains only white space, or contains invalid characters. 您可以使用 GetInvalidPathChars() 方法查詢無效字元。You can query for invalid characters by using the GetInvalidPathChars() method.

-或--or- searchPattern 不包含有效模式。searchPattern does not contain a valid pattern.

pathnullpath is null.

-或--or- searchPatternnullsearchPattern is null.

path 無效,例如指向未對應的磁碟機。path is invalid, such as referring to an unmapped drive.

path 為檔案名稱。path is a file name.

指定的路徑、檔案名稱,或兩者合計超出系統定義的長度上限。The specified path, file name, or combined exceed the system-defined maximum length.

呼叫端沒有必要的權限。The caller does not have the required permission.

呼叫端沒有必要的權限。The caller does not have the required permission.

範例

下列範例示範如何擷取目錄中的所有文字檔案,並將其移至新的目錄。The following example shows how to retrieve all the text files in a directory and move them to a new directory. 不會移動檔案之後,它們不再存在於原始的目錄。After the files are moved, they no longer exist in the original directory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

下列範例會列舉指定的目錄中,副檔名為.txt 的檔案讀取的檔案,每一行,並顯示列,如果它包含字串 「 歐洲 」。The following example enumerates the files in the specified directory that have a .txt extension, reads each line of the file, and displays the line if it contains the string "Europe".

using System;
using System.Linq;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // LINQ query for all .txt files containing the word 'Europe'.
            var files = from file in Directory.EnumerateFiles(@"\\archives1\library\", "*.txt")
                where file.ToLower().Contains("europe")
                select file;

            foreach (var file in files)
            {
                Console.WriteLine("{0}", file);
            }
            Console.WriteLine("{0} files found.", files.Count<string>().ToString());
        }
			
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Linq
Module Module1

    Sub Main()
        Try
            ' LINQ query for all .txt files containing the word 'Europe'.
            Dim files = From file In Directory.EnumerateFiles("\\archives1\library\", "*.txt")
                Where file.ToLower().Contains("europe")

            For Each file In files
                Console.WriteLine("{0}", file)
            Next
            Console.WriteLine("{0} files found.", files.Count.ToString())
        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub

End Module

備註

searchPattern 可以是常值與萬用字元字元的組合,但它不支援規則運算式。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. 允許使用下列萬用字元規範searchPatternThe following wildcard specifiers are permitted in searchPattern.

萬用字元規範Wildcard specifier 符合Matches
* (星號)* (asterisk) 在該位置的零或多個字元。Zero or more characters in that position.
?? (問號)(question mark) 該位置中的零個或一個字元。Zero or one character in that position.

非萬用字元的字元是常值字元。Characters other than the wildcard are literal characters. 比方說,searchPattern字串 」*t 」 中的所有名稱搜尋path結尾字母"t"。For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". searchPattern字串"s*」 中的所有名稱搜尋path開頭為字母"s"。The searchPattern string "s*" searches for all names in path beginning with the letter "s".

注意

當您使用星號萬用字元,在searchPattern這類 「*.txt 」,在指定的延伸模組中的字元數會影響搜尋,如下所示:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • 如果指定的延伸模組是剛好三個字元,則這個方法會傳回具有延伸模組可開始具有指定副檔名的檔案。If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. 例如,"*.xls"傳回"book.xls 」 和 「 book.xlsx"。For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • 在其他情況下,這個方法會傳回完全符合指定的延伸模組的檔案。In all other cases, the method returns files that exactly match the specified extension. 例如,"*.ai"會傳回 「 file.ai",而不是 「 file.aif"。For example, "*.ai" returns "file.ai" but not "file.aif".

當您使用問號萬用字元時,則這個方法會傳回符合指定的副檔名的檔案。When you use the question mark wildcard character, this method returns only files that match the specified file extension. 例如,假設"file1.txt"和"file1.txtother 」,兩個檔案,在目錄中,搜尋模式的 「 檔案?。txt"會傳回只是第一個檔案,而搜尋模式的 「 檔案*.txt"會傳回這兩個檔案。For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

searchPattern 結尾不能兩個句點 ("...") 或包含兩個句點 ("...") 後面接著DirectorySeparatorCharAltDirectorySeparatorChar,也不能包含任何無效的字元。searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. 您可以使用 GetInvalidPathChars 方法查詢無效字元。You can query for invalid characters by using the GetInvalidPathChars method.

您可以指定相對路徑的資訊與path參數。You can specify relative path information with the path parameter. 相對路徑的資訊會相對於目前工作目錄,您可以使用判斷解譯GetCurrentDirectory方法。Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFilesGetFiles方法的差異,如下所示:當您使用EnumerateFiles,您可以開始列舉的名稱集合,則會傳回整個集合之前,當您使用GetFiles,您必須等到整個陣列的名稱,才能存取陣列傳回。The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. 因此,當您使用許多檔案和目錄、EnumerateFiles可能會更有效率。Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

不會快取傳回的集合;每次呼叫GetEnumerator集合上將會啟動新的列舉型別。The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

適用於