DirectoryInfo.GetFiles Метод

Определение

Возвращает список файлов текущего каталога.

Перегрузки

GetFiles(String, EnumerationOptions)

Возвращает список файлов из текущего каталога, соответствующий указанному шаблону поиска и параметрам перечисления.

GetFiles(String, SearchOption)

Возвращает список файлов из текущего каталога, соответствующих заданному шаблону поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах.

GetFiles()

Возвращает список файлов текущего каталога.

GetFiles(String)

Возвращает список файлов текущего каталога, соответствующих заданному шаблону поиска.

GetFiles(String, EnumerationOptions)

Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs

Возвращает список файлов из текущего каталога, соответствующий указанному шаблону поиска и параметрам перечисления.

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFiles : string * System.IO.EnumerationOptions -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, enumerationOptions As EnumerationOptions) As FileInfo()

Параметры

searchPattern
String

Строка поиска, которая будет сравниваться с именами файлов. Этот параметр может содержать сочетание допустимого литерального пути и подстановочного символа (* и ?), но не поддерживает регулярные выражения.

enumerationOptions
EnumerationOptions

Объект, описывающий конфигурацию поиска и перечисления для использования.

Возвращаемое значение

Массив строго типизированных объектов FileInfo, соответствующий searchPattern и enumerationOptions.

Исключения

платформа .NET Framework и .NET Core версий старше 2.1: searchPattern содержит один или несколько недопустимых символов, определенных методом GetInvalidPathChars() .

searchPattern имеет значение null.

Недопустимый путь (например, указывающий на несопоставленный диск).

У вызывающего объекта отсутствует необходимое разрешение.

Комментарии

searchPattern может быть сочетанием литеральных и подстановочных знаков, но не поддерживает регулярные выражения. Следующие описатели с подстановочными знаками разрешены в searchPattern.

Описатель подстановочных знаков Соответствует
* (звездочка) Ноль или более символов в этой позиции.
? (вопросительный знак) Ноль или один символ в этой позиции.

Символы, отличные от подстановочного знака, являются литеральными символами. Например, строка "*t" ищет все имена, заканчивающиеся буквой "t". Строка searchPattern "s*" ищет все имена, path начинающиеся с буквы "s".

Методы EnumerateFiles и GetFiles отличаются следующим образом:

  • При использовании EnumerateFilesможно начать перечисление коллекции FileInfo объектов до возвращения всей коллекции.

  • При использовании GetFilesнеобходимо дождаться возвращения всего массива FileInfo объектов, прежде чем получить доступ к массиву.

Таким образом, при работе с большим количеством файлов и каталогов EnumerateFiles может быть более эффективным.

Если в нет файлов в DirectoryInfo, этот метод возвращает пустой массив.

Следующие описатели с подстановочными знаками разрешены в параметре searchPattern .

Символ-шаблон Описание
* Ноль или более символов.
? Ровно ноль или один символ.

Порядок возвращаемых имен файлов не гарантируется; используйте метод , Sort если требуется определенный порядок сортировки.

Разрешено использовать подстановочные знаки. Например, строка searchPattern "*.txt" ищет все имена файлов с расширением txt. Строка searchPattern "s*" ищет все имена файлов, начинающиеся с буквы "s". Если нет файлов или файлов, соответствующих строке searchPatternDirectoryInfoв , этот метод возвращает пустой массив.

Примечание

При использовании подстановочного знака звездочки в searchPattern (например, "*.txt") поведение сопоставления зависит от длины указанного расширения файла. Объект searchPattern с расширением ровно трех символов возвращает файлы с расширением из трех или более символов, где первые три символа соответствуют расширению файла, указанному searchPatternв . Объект searchPattern с расширением одного, двух или более трех символов возвращает только файлы с расширениями точно такой же длины, которые соответствуют расширению файла, указанному searchPatternв . При использовании подстановочного знака вопросительного знака этот метод возвращает только файлы, соответствующие указанному расширению файла. Например, при использовании двух файлов в каталоге , "file1.txt" и "file1.txtother", шаблон поиска "file?.txt" возвращает только первый файл, а шаблон поиска "file*.txt" возвращает оба файла.

Примечание

Так как этот метод проверяет имена файлов как в формате 8.3, так и в формате длинного имени файла, шаблон поиска, аналогичный "*1*.txt", может возвращать непредвиденные имена файлов. Например, при использовании шаблона поиска "*1*.txt" возвращается "longfilename.txt", так как эквивалентным форматом имени файла 8.3 будет "longf~1.txt".

Этот метод предварительно заполняет значения следующих FileInfo свойств:

Применяется к

GetFiles(String, SearchOption)

Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs

Возвращает список файлов из текущего каталога, соответствующих заданному шаблону поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах.

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.SearchOption searchOption);
member this.GetFiles : string * System.IO.SearchOption -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, searchOption As SearchOption) As FileInfo()

Параметры

searchPattern
String

Строка поиска, которая будет сравниваться с именами файлов. Этот параметр может содержать сочетание допустимого литерального пути и подстановочного символа (* и ?), но не поддерживает регулярные выражения.

searchOption
SearchOption

Одно из значений перечисления, определяющее, следует ли выполнять поиск только в текущем каталоге или также во всех его подкаталогах.

Возвращаемое значение

Массив типа FileInfo.

Исключения

платформа .NET Framework и .NET Core версий старше 2.1: searchPattern содержит один или несколько недопустимых символов, определенных методом GetInvalidPathChars() .

searchPattern имеет значение null.

searchOption не является допустимым значением SearchOption.

Недопустимый путь (например, указывающий на несопоставленный диск).

У вызывающего объекта отсутствует необходимое разрешение.

Примеры

В следующем примере показано, как получить список файлов из каталога с помощью различных параметров поиска. В примере предполагается каталог с файлами с именами log1.txt, log2.txt, test1.txt, test2.txt, test3.txt и подкаталог с именем SubFile.txt.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.GetFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.GetFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.GetFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{fi.Name}"
(*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.GetFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.GetFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

Комментарии

Методы EnumerateFiles и GetFiles отличаются следующим образом:

  • При использовании EnumerateFilesможно начать перечисление коллекции FileInfo объектов до возвращения всей коллекции.

  • При использовании GetFilesнеобходимо дождаться возвращения всего массива FileInfo объектов, прежде чем получить доступ к массиву.

Таким образом, при работе с большим количеством файлов и каталогов EnumerateFiles может быть более эффективным.

Если в нет файлов в DirectoryInfo, этот метод возвращает пустой массив.

Следующие описатели с подстановочными знаками разрешены в searchPattern.

Символ-шаблон Описание
* (звездочка) Ноль или более символов.
? (вопросительный знак) Ровно ноль или один символ.

Порядок возвращаемых имен файлов не гарантируется; используйте метод , Sort если требуется определенный порядок сортировки.

Разрешено использовать подстановочные знаки. Например, строка searchPattern "*.txt" ищет все имена файлов с расширением txt. Строка searchPattern "s*" ищет все имена файлов, начинающиеся с буквы "s". Если нет файлов или файлов, соответствующих строке searchPatternDirectoryInfoв , этот метод возвращает пустой массив.

Примечание

При использовании подстановочного знака звездочки в searchPattern (например, "*.txt") поведение сопоставления зависит от длины указанного расширения файла. Объект searchPattern с расширением ровно трех символов возвращает файлы с расширением из трех или более символов, где первые три символа соответствуют расширению файла, указанному searchPatternв . Объект searchPattern с расширением одного, двух или более трех символов возвращает только файлы с расширениями точно такой же длины, которые соответствуют расширению файла, указанному searchPatternв . При использовании подстановочного знака вопросительного знака этот метод возвращает только файлы, соответствующие указанному расширению файла. Например, при использовании двух файлов в каталоге , "file1.txt" и "file1.txtother", шаблон поиска "file?.txt" возвращает только первый файл, а шаблон поиска "file*.txt" возвращает оба файла.

В следующем списке показано поведение параметра разной длины searchPattern :

  • *.abc возвращает файлы с расширением .abc, .abcd, .abcde, .abcdef и т. д.

  • "*.abcd" возвращает только файлы с расширением ABCD.

  • *.abcde возвращает только файлы с расширением ABCDE.

  • "*.abcdef" возвращает только файлы с расширением .abcdef.

Примечание

Так как этот метод проверяет имена файлов как в формате 8.3, так и в формате длинного имени файла, шаблон поиска, аналогичный "*1*.txt", может возвращать непредвиденные имена файлов. Например, при использовании шаблона поиска "*1*.txt" возвращается "longfilename.txt", так как эквивалентным форматом имени файла 8.3 будет "longf~1.txt".

Этот метод предварительно заполняет значения следующих FileInfo свойств:

  1. Attributes

  2. CreationTime

  3. CreationTimeUtc

  4. LastAccessTime

  5. LastAccessTimeUtc

  6. LastWriteTime

  7. LastWriteTimeUtc

  8. Length

См. также раздел

Применяется к

GetFiles()

Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs

Возвращает список файлов текущего каталога.

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles();
public System.IO.FileInfo[] GetFiles ();
member this.GetFiles : unit -> System.IO.FileInfo[]
Public Function GetFiles () As FileInfo()

Возвращаемое значение

Массив типа FileInfo.

Исключения

Недопустимый путь (например, он ведет на несопоставленный диск).

Примеры

В следующем примере показано, как получить список файлов из каталога с помощью различных параметров поиска. В примере предполагается каталог с файлами с именами log1.txt, log2.txt, test1.txt, test2.txt, test3.txt и подкаталог с именем SubFile.txt.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.GetFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.GetFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.GetFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{fi.Name}"
(*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.GetFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.GetFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

Комментарии

Методы EnumerateFiles и GetFiles отличаются следующим образом:

  • При использовании EnumerateFilesможно начать перечисление коллекции FileInfo объектов до возвращения всей коллекции.

  • При использовании GetFilesнеобходимо дождаться возвращения всего массива FileInfo объектов, прежде чем получить доступ к массиву.

Таким образом, при работе с большим количеством файлов и каталогов EnumerateFiles может быть более эффективным.

Если в нет файлов в DirectoryInfo, этот метод возвращает пустой массив.

Порядок возвращаемых имен файлов не гарантируется; используйте метод , Sort если требуется определенный порядок сортировки.

Этот метод предварительно заполняет значения следующих FileInfo свойств:

См. также раздел

Применяется к

GetFiles(String)

Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs

Возвращает список файлов текущего каталога, соответствующих заданному шаблону поиска.

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern);
public System.IO.FileInfo[] GetFiles (string searchPattern);
member this.GetFiles : string -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String) As FileInfo()

Параметры

searchPattern
String

Строка поиска, которая будет сравниваться с именами файлов. Этот параметр может содержать сочетание допустимого литерального пути и подстановочного символа (* и ?), но не поддерживает регулярные выражения.

Возвращаемое значение

Массив типа FileInfo.

Исключения

платформа .NET Framework и .NET Core версий старше 2.1: searchPattern содержит один или несколько недопустимых символов, определенных методом GetInvalidPathChars() .

searchPattern имеет значение null.

Недопустимый путь (например, указывающий на несопоставленный диск).

У вызывающего объекта отсутствует необходимое разрешение.

Примеры

В следующем примере показано, как получить список файлов из каталога с помощью различных параметров поиска. В примере предполагается каталог с файлами с именами log1.txt, log2.txt, test1.txt, test2.txt, test3.txt и подкаталог с именем SubFile.txt.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.GetFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.GetFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.GetFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{fi.Name}"
(*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.GetFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.GetFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

Комментарии

searchPattern может быть сочетанием литеральных и подстановочных знаков, но не поддерживает регулярные выражения. Следующие описатели с подстановочными знаками разрешены в searchPattern.

Описатель подстановочных знаков Соответствует
* (звездочка) Ноль или более символов в этой позиции.
? (вопросительный знак) Ноль или один символ в этой позиции.

Символы, отличные от подстановочного знака, являются литеральными символами. Например, строка "*t" ищет все имена, заканчивающиеся буквой "t". Строка searchPattern "s*" ищет все имена, path начинающиеся с буквы "s".

Методы EnumerateFiles и GetFiles отличаются следующим образом:

  • При использовании EnumerateFilesможно начать перечисление коллекции FileInfo объектов до возвращения всей коллекции.

  • При использовании GetFilesнеобходимо дождаться возвращения всего массива FileInfo объектов, прежде чем получить доступ к массиву.

Таким образом, при работе с большим количеством файлов и каталогов EnumerateFiles может быть более эффективным.

Если в нет файлов в DirectoryInfo, этот метод возвращает пустой массив.

Следующие описатели с подстановочными знаками разрешены в параметре searchPattern .

Символ-шаблон Описание
* Ноль или более символов.
? Ровно ноль или один символ.

Порядок возвращаемых имен файлов не гарантируется; используйте метод , Sort если требуется определенный порядок сортировки.

Разрешено использовать подстановочные знаки. Например, строка searchPattern "*.txt" ищет все имена файлов с расширением txt. Строка searchPattern "s*" ищет все имена файлов, начинающиеся с буквы "s". Если нет файлов или файлов, соответствующих строке searchPatternDirectoryInfoв , этот метод возвращает пустой массив.

Примечание

При использовании подстановочного знака звездочки в searchPattern (например, "*.txt") поведение сопоставления зависит от длины указанного расширения файла. Объект searchPattern с расширением ровно трех символов возвращает файлы с расширением из трех или более символов, где первые три символа соответствуют расширению файла, указанному searchPatternв . Объект searchPattern с расширением одного, двух или более трех символов возвращает только файлы с расширениями точно такой же длины, которые соответствуют расширению файла, указанному searchPatternв . При использовании подстановочного знака вопросительного знака этот метод возвращает только файлы, соответствующие указанному расширению файла. Например, при использовании двух файлов в каталоге , "file1.txt" и "file1.txtother", шаблон поиска "file?.txt" возвращает только первый файл, а шаблон поиска "file*.txt" возвращает оба файла.

Примечание

Так как этот метод проверяет имена файлов как в формате 8.3, так и в формате длинного имени файла, шаблон поиска, аналогичный "*1*.txt", может возвращать непредвиденные имена файлов. Например, при использовании шаблона поиска "*1*.txt" возвращается "longfilename.txt", так как эквивалентным форматом имени файла 8.3 будет "longf~1.txt".

Этот метод предварительно заполняет значения следующих FileInfo свойств:

См. также раздел

Применяется к