DirectoryInfo.GetFiles Метод
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает список файлов текущего каталога.
GetFiles(String, EnumerationOptions) |
Возвращает список файлов из текущего каталога, соответствующий указанному шаблону поиска и параметрам перечисления. |
GetFiles(String, SearchOption) |
Возвращает список файлов из текущего каталога, соответствующих заданному шаблону поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах. |
GetFiles() |
Возвращает список файлов текущего каталога. |
GetFiles(String) |
Возвращает список файлов текущего каталога, соответствующих заданному шаблону поиска. |
- Исходный код:
- 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". Если нет файлов или файлов, соответствующих строке searchPattern
DirectoryInfoв , этот метод возвращает пустой массив.
Примечание
При использовании подстановочного знака звездочки в 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 свойств:
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Standard | 2.1 |
- Исходный код:
- 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". Если нет файлов или файлов, соответствующих строке searchPattern
DirectoryInfoв , этот метод возвращает пустой массив.
Примечание
При использовании подстановочного знака звездочки в 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 свойств:
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Исходный код:
- 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 свойств:
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Исходный код:
- 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". Если нет файлов или файлов, соответствующих строке searchPattern
DirectoryInfoв , этот метод возвращает пустой массив.
Примечание
При использовании подстановочного знака звездочки в 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 свойств:
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: