DirectoryInfo.EnumerateFiles Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar en uppräkningsbar samling filinformation i den aktuella katalogen.
Överlagringar
| Name | Description |
|---|---|
| EnumerateFiles() |
Returnerar en uppräkningsbar samling filinformation i den aktuella katalogen. |
| EnumerateFiles(String) |
Returnerar en uppräkningsbar samling filinformation som matchar ett sökmönster. |
| EnumerateFiles(String, EnumerationOptions) |
Returnerar en uppräkningsbar samling filinformation som matchar det angivna sökmönstret och uppräkningsalternativen. |
| EnumerateFiles(String, SearchOption) |
Returnerar en uppräkningsbar samling filinformation som matchar ett angivet sökmönster och sökunderkatalogalternativ. |
EnumerateFiles()
Returnerar en uppräkningsbar samling filinformation i den aktuella katalogen.
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)
Returer
En uppräkningsbar samling av filerna i den aktuella katalogen.
Undantag
Sökvägen som är inkapslad i DirectoryInfo objektet är ogiltig (den finns till exempel på en ommappad enhet).
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel räknas filerna upp under en angiven katalog och en LINQ-fråga används för att returnera namnen på alla filer som skapades före 2009 genom att kontrollera värdet för CreationTimeUtc egenskapen.
Om du bara behöver namnen på filerna använder du den statiska Directory klassen för bättre prestanda. Ett exempel finns i Directory.EnumerateFiles(String) metoden.
// 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
I följande exempel visas hur du räknar upp filer i en katalog med hjälp av olika sökalternativ. Exemplet förutsätter en katalog med namnet log1.txt, log2.txt, test1.txt, test2.txt, test3.txtoch en underkatalog som har en fil med namnet 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 . . .
Kommentarer
Metoderna EnumerateFiles och GetFiles skiljer sig åt enligt följande:
När du använder EnumerateFileskan du börja räkna upp samlingen med FileInfo objekt innan hela samlingen returneras.
När du använder GetFilesmåste du vänta tills hela matrisen med FileInfo objekt returneras innan du kan komma åt matrisen.
Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateFiles .
Den här metoden fyller i värdena för följande FileInfo egenskaper i förväg:
Den returnerade samlingen cachelagras inte. varje anrop till GetEnumerator metoden i samlingen startar en ny uppräkning.
Gäller för
EnumerateFiles(String)
Returnerar en uppräkningsbar samling filinformation som matchar ett sökmönster.
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)
Parametrar
- searchPattern
- String
Söksträngen som ska matchas mot namnen på filerna. Den här parametern kan innehålla en kombination av giltiga teckensökväg och jokertecken (* och ?), men den stöder inte reguljära uttryck.
Returer
En uppräkningsbar samling filer som matchar searchPattern.
Undantag
searchPattern är null.
Sökvägen som är inkapslad i DirectoryInfo objektet är ogiltig (den finns till exempel på en ommappad enhet).
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel visas hur du räknar upp filer i en katalog med hjälp av olika sökalternativ. Exemplet förutsätter en katalog med namnet log1.txt, log2.txt, test1.txt, test2.txt, test3.txtoch en underkatalog som har en fil med namnet 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 . . .
Kommentarer
searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.
| Jokerteckensspecificerare | Matcher |
|---|---|
| * (asterisk) | Noll eller fler tecken i den positionen. |
| ? (frågetecken) | Noll eller ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen "*t" söker till exempel efter alla namn som slutar med bokstaven "t". ". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
Metoderna EnumerateFiles och GetFiles skiljer sig åt enligt följande:
När du använder EnumerateFileskan du börja räkna upp samlingen med FileInfo objekt innan hela samlingen returneras.
När du använder GetFilesmåste du vänta tills hela matrisen med FileInfo objekt returneras innan du kan komma åt matrisen.
Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateFiles .
Den här metoden fyller i värdena för följande FileInfo egenskaper i förväg:
Den returnerade samlingen cachelagras inte. varje anrop till GetEnumerator metoden i samlingen startar en ny uppräkning.
Gäller för
EnumerateFiles(String, EnumerationOptions)
Returnerar en uppräkningsbar samling filinformation som matchar det angivna sökmönstret och uppräkningsalternativen.
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)
Parametrar
- searchPattern
- String
Söksträngen som ska matchas mot namnen på filerna. Den här parametern kan innehålla en kombination av giltiga teckensökväg och jokertecken (* och ?), men den stöder inte reguljära uttryck.
- enumerationOptions
- EnumerationOptions
Ett objekt som beskriver den sök- och uppräkningskonfiguration som ska användas.
Returer
En uppräkningsbar samling filer som matchar searchPattern och enumerationOptions.
Undantag
searchPattern är null.
Sökvägen som är inkapslad i DirectoryInfo objektet är ogiltig (den finns till exempel på en ommappad enhet).
Anroparen har inte den behörighet som krävs.
Kommentarer
searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.
| Jokerteckensspecificerare | Matcher |
|---|---|
| * (asterisk) | Noll eller fler tecken i den positionen. |
| ? (frågetecken) | Noll eller ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen "*t" söker till exempel efter alla namn som slutar med bokstaven "t". ". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
Metoderna EnumerateFiles och GetFiles skiljer sig åt enligt följande:
När du använder EnumerateFileskan du börja räkna upp samlingen med FileInfo objekt innan hela samlingen returneras.
När du använder GetFilesmåste du vänta tills hela matrisen med FileInfo objekt returneras innan du kan komma åt matrisen.
Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateFiles .
Den här metoden fyller i värdena för följande FileInfo egenskaper i förväg:
Den returnerade samlingen cachelagras inte. varje anrop till GetEnumerator metoden i samlingen startar en ny uppräkning.
Gäller för
EnumerateFiles(String, SearchOption)
Returnerar en uppräkningsbar samling filinformation som matchar ett angivet sökmönster och sökunderkatalogalternativ.
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)
Parametrar
- searchPattern
- String
Söksträngen som ska matchas mot namnen på filerna. Den här parametern kan innehålla en kombination av giltiga teckensökväg och jokertecken (* och ?), men den stöder inte reguljära uttryck.
- searchOption
- SearchOption
Ett av uppräkningsvärdena som anger om sökåtgärden endast ska innehålla den aktuella katalogen eller alla underkataloger. Standardvärdet är TopDirectoryOnly.
Returer
En uppräkningsbar samling filer som matchar searchPattern och searchOption.
Undantag
searchPattern är null.
searchOption är inte ett giltigt SearchOption värde.
Sökvägen som är inkapslad i DirectoryInfo objektet är ogiltig (den finns till exempel på en ommappad enhet).
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel visas hur du räknar upp filer i en katalog med hjälp av olika sökalternativ. Exemplet förutsätter en katalog med namnet log1.txt, log2.txt, test1.txt, test2.txt, test3.txtoch en underkatalog som har en fil med namnet 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 . . .
Kommentarer
searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.
| Jokerteckensspecificerare | Matcher |
|---|---|
| * (asterisk) | Noll eller fler tecken i den positionen. |
| ? (frågetecken) | Noll eller ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen "*t" söker till exempel efter alla namn som slutar med bokstaven "t". ". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
Metoderna EnumerateFiles och GetFiles skiljer sig åt enligt följande:
När du använder EnumerateFileskan du börja räkna upp samlingen med FileInfo objekt innan hela samlingen returneras.
När du använder GetFilesmåste du vänta tills hela matrisen med FileInfo objekt returneras innan du kan komma åt matrisen.
Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateFiles .
Den här metoden fyller i värdena för följande FileInfo egenskaper i förväg:
Den returnerade samlingen cachelagras inte. varje anrop till GetEnumerator metoden i samlingen startar en ny uppräkning.