DirectoryInfo.EnumerateFiles Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí výčtovou kolekci informací o souboru v aktuálním adresáři.
Přetížení
| Name | Description |
|---|---|
| EnumerateFiles() |
Vrátí výčtovou kolekci informací o souboru v aktuálním adresáři. |
| EnumerateFiles(String) |
Vrátí výčtovou kolekci informací o souboru, která odpovídá vzoru hledání. |
| EnumerateFiles(String, EnumerationOptions) |
Vrátí výčtovou kolekci informací o souboru, která odpovídá zadanému vzoru hledání a možnostem výčtu. |
| EnumerateFiles(String, SearchOption) |
Vrátí výčtovou kolekci informací o souboru, která odpovídá zadanému vzoru hledání a možnosti podadresáře hledání. |
EnumerateFiles()
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
Vrátí výčtovou kolekci informací o souboru v aktuálním adresáři.
public:
System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles();
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles();
member this.EnumerateFiles : unit -> seq<System.IO.FileInfo>
Public Function EnumerateFiles () As IEnumerable(Of FileInfo)
Návraty
Výčet souborů v aktuálním adresáři.
Výjimky
Cesta zapouzdřená v objektu DirectoryInfo je neplatná (například je na nemapované jednotce).
Volající nemá požadované oprávnění.
Příklady
Následující příklad vytvoří výčet souborů v zadaném adresáři a pomocí dotazu LINQ vrátí názvy všech souborů, které byly vytvořeny před 2009 kontrolou hodnoty CreationTimeUtc vlastnosti.
Pokud potřebujete jenom názvy souborů, použijte statickou Directory třídu pro lepší výkon. Příklad najdete v Directory.EnumerateFiles(String) metodě.
// Create a DirectoryInfo of the directory of the files to enumerate.
DirectoryInfo DirInfo = new DirectoryInfo(@"\\archives1\library\");
DateTime StartOf2009 = new DateTime(2009, 01, 01);
// LINQ query for all files created before 2009.
var files = from f in DirInfo.EnumerateFiles()
where f.CreationTimeUtc < StartOf2009
select f;
// Show results.
foreach (var f in files)
{
Console.WriteLine("{0}", f.Name);
}
// Create a DirectoryInfo of the directory of the files to enumerate.
let dirInfo = DirectoryInfo @"\archives1\library\"
let startOf2009 = DateTime(2009, 01, 01)
// LINQ query for all files created before 2009.
let files =
query {
for f in dirInfo.EnumerateFiles() do
where (f.CreationTime < startOf2009)
select f
}
// Show results.
for f in files do
printfn $"{f.Name}"
' Create a DirectoryInfo of the directory of the files to enumerate.
Dim DirInfo As New DirectoryInfo("\\archives1\library\")
Dim StartOf2009 As New DateTime(2009, 1, 1)
' LINQ query for all files created before 2009.
Dim files = From f In DirInfo.EnumerateFiles()
Where f.CreationTimeUtc < StartOf2009
' Show results.
For Each f As FileInfo In files
Console.WriteLine("{0}", f.Name)
Next
Následující příklad ukazuje, jak vytvořit výčet souborů v adresáři pomocí různých možností hledání. Příklad předpokládá adresář, který obsahuje soubory s názvem log1.txt, log2.txt, test1.txt, test2.txt, test3.txta podadresářem, který má soubor s názvem SubFile.txt.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.EnumerateFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.EnumerateFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.EnumerateFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.EnumerateFiles("*", 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:\ExampleDir"
printfn "No search pattern returns:"
for fi in di.EnumerateFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.EnumerateFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.EnumerateFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.EnumerateFiles("*", 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.EnumerateFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.EnumerateFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.EnumerateFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.EnumerateFiles("*", 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 . . .
Poznámky
Tyto metody EnumerateFiles a GetFiles se liší následujícím způsobem:
Při použití EnumerateFilesmůžete zahájit výčet kolekce FileInfo objektů před vrácením celé kolekce.
Při použití GetFilesmusíte počkat na vrácení celého pole FileInfo objektů, než budete mít přístup k poli.
Proto při práci s mnoha soubory a adresáři EnumerateFiles může být efektivnější.
Tato metoda předem naplní hodnoty následujících FileInfo vlastností:
Vrácená kolekce není uložena v mezipaměti; každé volání GetEnumerator metody v kolekci spustí nový výčet.
Platí pro
EnumerateFiles(String)
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
Vrátí výčtovou kolekci informací o souboru, která odpovídá vzoru hledání.
public:
System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern);
member this.EnumerateFiles : string -> seq<System.IO.FileInfo>
Public Function EnumerateFiles (searchPattern As String) As IEnumerable(Of FileInfo)
Parametry
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy souborů. Tento parametr může obsahovat kombinaci platných znaků literálu a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
Návraty
Enumerable kolekce souborů, která odpovídá searchPattern.
Výjimky
searchPattern je null.
Cesta zapouzdřená v objektu DirectoryInfo je neplatná (například je na nemapované jednotce).
Volající nemá požadované oprávnění.
Příklady
Následující příklad ukazuje, jak vytvořit výčet souborů v adresáři pomocí různých možností hledání. Příklad předpokládá adresář, který obsahuje soubory s názvem log1.txt, log2.txt, test1.txt, test2.txt, test3.txta podadresářem, který má soubor s názvem SubFile.txt.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.EnumerateFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.EnumerateFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.EnumerateFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.EnumerateFiles("*", 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:\ExampleDir"
printfn "No search pattern returns:"
for fi in di.EnumerateFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.EnumerateFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.EnumerateFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.EnumerateFiles("*", 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.EnumerateFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.EnumerateFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.EnumerateFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.EnumerateFiles("*", 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 . . .
Poznámky
searchPattern může být kombinací literálů a zástupných znaků, ale nepodporuje regulární výrazy. Následující specifikátory zástupných znaků jsou povoleny v searchPattern.
| Specifikátor zástupných znaků | Shody |
|---|---|
| * (hvězdička) | V této pozici je nula nebo více znaků. |
| ? (otazník) | V této pozici je nula nebo jeden znak. |
Jiné znaky než zástupné znaky jsou literální znaky. Například řetězec "*t" vyhledá všechny názvy končící písmenem "t". ". Řetězec searchPattern "s*" vyhledá všechny názvy začínající path písmenem "s".
Tyto metody EnumerateFiles a GetFiles se liší následujícím způsobem:
Při použití EnumerateFilesmůžete zahájit výčet kolekce FileInfo objektů před vrácením celé kolekce.
Při použití GetFilesmusíte počkat na vrácení celého pole FileInfo objektů, než budete mít přístup k poli.
Proto při práci s mnoha soubory a adresáři EnumerateFiles může být efektivnější.
Tato metoda předem naplní hodnoty následujících FileInfo vlastností:
Vrácená kolekce není uložena v mezipaměti; každé volání GetEnumerator metody v kolekci spustí nový výčet.
Platí pro
EnumerateFiles(String, EnumerationOptions)
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
Vrátí výčtovou kolekci informací o souboru, která odpovídá zadanému vzoru hledání a možnostem výčtu.
public:
System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.EnumerateFiles : string * System.IO.EnumerationOptions -> seq<System.IO.FileInfo>
Public Function EnumerateFiles (searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of FileInfo)
Parametry
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy souborů. Tento parametr může obsahovat kombinaci platných znaků literálu a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
- enumerationOptions
- EnumerationOptions
Objekt, který popisuje konfiguraci vyhledávání a výčtu, která se má použít.
Návraty
Enumerable kolekce souborů, které odpovídají searchPattern a enumerationOptions.
Výjimky
searchPattern je null.
Cesta zapouzdřená v objektu DirectoryInfo je neplatná (například je na nemapované jednotce).
Volající nemá požadované oprávnění.
Poznámky
searchPattern může být kombinací literálů a zástupných znaků, ale nepodporuje regulární výrazy. Následující specifikátory zástupných znaků jsou povoleny v searchPattern.
| Specifikátor zástupných znaků | Shody |
|---|---|
| * (hvězdička) | V této pozici je nula nebo více znaků. |
| ? (otazník) | V této pozici je nula nebo jeden znak. |
Jiné znaky než zástupné znaky jsou literální znaky. Například řetězec "*t" vyhledá všechny názvy končící písmenem "t". ". Řetězec searchPattern "s*" vyhledá všechny názvy začínající path písmenem "s".
Tyto metody EnumerateFiles a GetFiles se liší následujícím způsobem:
Při použití EnumerateFilesmůžete zahájit výčet kolekce FileInfo objektů před vrácením celé kolekce.
Při použití GetFilesmusíte počkat na vrácení celého pole FileInfo objektů, než budete mít přístup k poli.
Proto při práci s mnoha soubory a adresáři EnumerateFiles může být efektivnější.
Tato metoda předem naplní hodnoty následujících FileInfo vlastností:
Vrácená kolekce není uložena v mezipaměti; každé volání GetEnumerator metody v kolekci spustí nový výčet.
Platí pro
EnumerateFiles(String, SearchOption)
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
Vrátí výčtovou kolekci informací o souboru, která odpovídá zadanému vzoru hledání a možnosti podadresáře hledání.
public:
System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption);
member this.EnumerateFiles : string * System.IO.SearchOption -> seq<System.IO.FileInfo>
Public Function EnumerateFiles (searchPattern As String, searchOption As SearchOption) As IEnumerable(Of FileInfo)
Parametry
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy souborů. Tento parametr může obsahovat kombinaci platných znaků literálu a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
- searchOption
- SearchOption
Jedna z hodnot výčtu, která určuje, zda by operace hledání měla obsahovat pouze aktuální adresář nebo všechny podadresáře. Výchozí hodnota je TopDirectoryOnly.
Návraty
Enumerable kolekce souborů, které odpovídají searchPattern a searchOption.
Výjimky
searchPattern je null.
searchOption není platná SearchOption hodnota.
Cesta zapouzdřená v objektu DirectoryInfo je neplatná (například je na nemapované jednotce).
Volající nemá požadované oprávnění.
Příklady
Následující příklad ukazuje, jak vytvořit výčet souborů v adresáři pomocí různých možností hledání. Příklad předpokládá adresář, který obsahuje soubory s názvem log1.txt, log2.txt, test1.txt, test2.txt, test3.txta podadresářem, který má soubor s názvem SubFile.txt.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.EnumerateFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.EnumerateFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.EnumerateFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.EnumerateFiles("*", 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:\ExampleDir"
printfn "No search pattern returns:"
for fi in di.EnumerateFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.EnumerateFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.EnumerateFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.EnumerateFiles("*", 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.EnumerateFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.EnumerateFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.EnumerateFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.EnumerateFiles("*", 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 . . .
Poznámky
searchPattern může být kombinací literálů a zástupných znaků, ale nepodporuje regulární výrazy. Následující specifikátory zástupných znaků jsou povoleny v searchPattern.
| Specifikátor zástupných znaků | Shody |
|---|---|
| * (hvězdička) | V této pozici je nula nebo více znaků. |
| ? (otazník) | V této pozici je nula nebo jeden znak. |
Jiné znaky než zástupné znaky jsou literální znaky. Například řetězec "*t" vyhledá všechny názvy končící písmenem "t". ". Řetězec searchPattern "s*" vyhledá všechny názvy začínající path písmenem "s".
Tyto metody EnumerateFiles a GetFiles se liší následujícím způsobem:
Při použití EnumerateFilesmůžete zahájit výčet kolekce FileInfo objektů před vrácením celé kolekce.
Při použití GetFilesmusíte počkat na vrácení celého pole FileInfo objektů, než budete mít přístup k poli.
Proto při práci s mnoha soubory a adresáři EnumerateFiles může být efektivnější.
Tato metoda předem naplní hodnoty následujících FileInfo vlastností:
Vrácená kolekce není uložena v mezipaměti; každé volání GetEnumerator metody v kolekci spustí nový výčet.