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í
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 souborech, 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
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 kolekce souborů v aktuálním adresáři.
Výjimky
Cesta zapouzdřená v objektu DirectoryInfo je neplatná (například je na nenamapované 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.txt, a podadresář se souborem 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
Metody EnumerateFiles a GetFiles se liší takto:
Při použití příkazu EnumerateFilesmůžete zahájit výčet kolekce FileInfo objektů před vrácením celé kolekce.
Pokud použijete GetFiles, musíte počkat na vrácení celé pole FileInfo objektů, abyste mohli získat přístup k matici.
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 do 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
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 literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
Návraty
Výčetná kolekce souborů, která odpovídá searchPattern
.
Výjimky
searchPattern
je null
.
Cesta zapouzdřená v objektu DirectoryInfo je neplatná (například je na nenamapované 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.txt, a podadresář se souborem 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álu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | V této pozici není žádný nebo jeden znak. |
Jiné znaky než zástupný znak jsou literálové znaky. Například řetězec "*t" vyhledá všechna jména končící písmenem "t". ". Řetězec searchPattern
"s*" vyhledá všechna jména začínající path
písmenem "s".
Metody EnumerateFiles a GetFiles se liší takto:
Při použití příkazu EnumerateFilesmůžete zahájit výčet kolekce FileInfo objektů před vrácením celé kolekce.
Pokud použijete GetFiles, musíte počkat na vrácení celé pole FileInfo objektů, abyste mohli získat přístup k matici.
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 do 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
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 literálových cest 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
Výčetná kolekce souborů, která odpovídá searchPattern
a enumerationOptions
.
Výjimky
searchPattern
je null
.
Cesta zapouzdřená v objektu DirectoryInfo je neplatná (například je na nenamapované jednotce).
Volající nemá požadované oprávnění.
Poznámky
searchPattern
může být kombinací literálu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | V této pozici není žádný nebo jeden znak. |
Jiné znaky než zástupný znak jsou literálové znaky. Například řetězec "*t" vyhledá všechna jména končící písmenem "t". ". Řetězec searchPattern
"s*" vyhledá všechna jména začínající path
písmenem "s".
Metody EnumerateFiles a GetFiles se liší takto:
Při použití příkazu EnumerateFilesmůžete zahájit výčet kolekce FileInfo objektů před vrácením celé kolekce.
Pokud použijete GetFiles, musíte počkat na vrácení celé pole FileInfo objektů, abyste mohli získat přístup k matici.
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 do 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
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 literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
- searchOption
- SearchOption
Jedna z hodnot výčtu, která určuje, zda má operace hledání obsahovat pouze aktuální adresář nebo všechny podadresáře. Výchozí hodnota je TopDirectoryOnly.
Návraty
Výčet kolekce souborů, která odpovídá 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 nenamapované 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.txt, a podadresář se souborem 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álu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | V této pozici není žádný nebo jeden znak. |
Jiné znaky než zástupný znak jsou literálové znaky. Například řetězec "*t" vyhledá všechna jména končící písmenem "t". ". Řetězec searchPattern
"s*" vyhledá všechna jména začínající path
písmenem "s".
Metody EnumerateFiles a GetFiles se liší takto:
Při použití příkazu EnumerateFilesmůžete zahájit výčet kolekce FileInfo objektů před vrácením celé kolekce.
Pokud použijete , GetFilesmusíte počkat na vrácení celého pole FileInfo objektů, abyste mohli získat přístup k poli.
Proto, když pracujete s mnoha soubory a adresáři, EnumerateFiles může být efektivnější.
Tato metoda předem vyplní hodnoty následujících FileInfo vlastností:
Vrácená kolekce není uložena v mezipaměti; každé volání metody v GetEnumerator kolekci spustí nový výčet.