DirectoryInfo.EnumerateFiles Methode

Definition

Gibt eine aufzählbare Auflistung von Dateiinformationen im aktuellen Verzeichnis zurück.Returns an enumerable collection of file information in the current directory.

Überlädt

EnumerateFiles()

Gibt eine aufzählbare Auflistung von Dateiinformationen im aktuellen Verzeichnis zurück.Returns an enumerable collection of file information in the current directory.

EnumerateFiles(String)

Gibt eine aufzählbare Auflistung von Dateiinformationen zurück, die einem Suchmuster entsprechen.Returns an enumerable collection of file information that matches a search pattern.

EnumerateFiles(String, EnumerationOptions)
EnumerateFiles(String, SearchOption)

Gibt eine aufzählbare Auflistung von Dateiinformationen zurück, die einem angegebenen Suchmuster und einer angegebenen Option zum Durchsuchen von Unterverzeichnissen entspricht.Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

EnumerateFiles()

Gibt eine aufzählbare Auflistung von Dateiinformationen im aktuellen Verzeichnis zurück.Returns an enumerable collection of file information in the current directory.

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)

Gibt zurück

Eine aufzählbare Auflistung der Dateien im aktuellen Verzeichnis.An enumerable collection of the files in the current directory.

Ausnahmen

Der im DirectoryInfo-Objekt gekapselte Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).The path encapsulated in the DirectoryInfo object is invalid (for example, it is on an unmapped drive).

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Beispiele

Im folgenden Beispiel werden die Dateien unter einem angegebenen Verzeichnis aufgelistet und eine LINQ-Abfrage verwendet, um die Namen aller Dateien zurückzugeben, die vor 2009 erstellt wurden, indem der Wert CreationTimeUtc der-Eigenschaft überprüft wird.The following example enumerates the files under a specified directory and uses a LINQ query to return the names of all files that were created before 2009 by checking the value of the CreationTimeUtc property.

Wenn Sie nur die Namen der Dateien benötigen, verwenden Sie die statische Directory -Klasse, um die Leistung zu verbessern.If you only need the names of the files, use the static Directory class for better performance. Ein Beispiel finden Sie unter der Directory.EnumerateFiles(String) -Methode.For an example, see the Directory.EnumerateFiles(String) method.

// 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.
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

Im folgenden Beispiel wird gezeigt, wie Dateien in einem Verzeichnis mithilfe verschiedener Suchoptionen aufgelistet werden.The following example shows how to enumerate files in a directory by using different search options. Im Beispiel wird davon ausgegangen, dass ein Verzeichnis mit Dateien namens log1. txt, log2. txt, test1. txt, test2. txt, "test3". txt und ein Unterverzeichnis mit der Datei "subfile. txt" enthält.The example assumes a directory that has files named log1.txt, log2.txt, test1.txt, test2.txt, test3.txt, and a subdirectory that has a file named 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 . . .

*/

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 . . .

Hinweise

Die EnumerateFiles Methoden GetFiles und unterscheiden sich wie folgt:The EnumerateFiles and GetFiles methods differ as follows:

  • Wenn Sie verwenden EnumerateFiles, können Sie mit dem Auflisten der Auflistung von FileInfo -Objekten beginnen, bevor die gesamte Auflistung zurückgegeben wird.When you use EnumerateFiles, you can start enumerating the collection of FileInfo objects before the whole collection is returned.

  • Wenn Sie verwenden GetFiles, müssen Sie warten, bis das gesamte Array FileInfo von-Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.When you use GetFiles, you must wait for the whole array of FileInfo objects to be returned before you can access the array.

Wenn Sie also mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFiles kann effizienter sein.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Diese Methode füllt vorab die Werte der folgenden FileInfo Eigenschaften auf:This method pre-populates the values of the following FileInfo properties:

Die zurückgegebene Auflistung wird nicht zwischengespeichert. jeder Aufrufe der GetEnumerator -Methode für die-Auflistung startet eine neue-Enumeration.The returned collection is not cached; each call to the GetEnumerator method on the collection will start a new enumeration.

EnumerateFiles(String)

Gibt eine aufzählbare Auflistung von Dateiinformationen zurück, die einem Suchmuster entsprechen.Returns an enumerable collection of file information that matches a search pattern.

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)

Parameter

searchPattern
String

Die Suchzeichenfolge für die Überprüfung der Namen von Dateien auf Übereinstimmungen.The search string to match against the names of files. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

Gibt zurück

Eine aufzählbare Auflistung von Dateien, die searchPattern entspricht.An enumerable collection of files that matches searchPattern.

Ausnahmen

searchPattern ist null.searchPattern is null.

Der im DirectoryInfo -Objekt gekapselte Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).The path encapsulated in the DirectoryInfo object is invalid, (for example, it is on an unmapped drive).

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Dateien in einem Verzeichnis mithilfe verschiedener Suchoptionen aufgelistet werden.The following example shows how to enumerate files in a directory by using different search options. Im Beispiel wird davon ausgegangen, dass ein Verzeichnis mit Dateien namens log1. txt, log2. txt, test1. txt, test2. txt, "test3". txt und ein Unterverzeichnis mit der Datei "subfile. txt" enthält.The example assumes a directory that has files named log1.txt, log2.txt, test1.txt, test2.txt, test3.txt, and a subdirectory that has a file named 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 . . .

*/

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 . . .

Hinweise

searchPattern kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Die folgenden Platzhalter spezifiatoren sind in searchPatternzulässig.The following wildcard specifiers are permitted in searchPattern.

Platzhalter BezeichnerWildcard specifier ÜbereinstimmungenMatches
* (Sternchen)* (asterisk) NULL oder mehr Zeichen an dieser Position.Zero or more characters in that position.
?? (Fragezeichen)(question mark) NULL oder ein Zeichen an dieser Position.Zero or one character in that position.

Andere Zeichen als der Platzhalter sind Literalzeichen.Characters other than the wildcard are literal characters. Beispielsweise sucht die Zeichenfolge "* t" nach allen Namen, die mit dem Buchstaben "t" enden.For example, the string "*t" searches for all names in ending with the letter "t". ".". Die searchPattern Zeichenfolge "*s" path sucht nach allen Namen, die mit dem Buchstaben "s" beginnen.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Die EnumerateFiles Methoden GetFiles und unterscheiden sich wie folgt:The EnumerateFiles and GetFiles methods differ as follows:

  • Wenn Sie verwenden EnumerateFiles, können Sie mit dem Auflisten der Auflistung von FileInfo -Objekten beginnen, bevor die gesamte Auflistung zurückgegeben wird.When you use EnumerateFiles, you can start enumerating the collection of FileInfo objects before the whole collection is returned.

  • Wenn Sie verwenden GetFiles, müssen Sie warten, bis das gesamte Array FileInfo von-Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.When you use GetFiles, you must wait for the whole array of FileInfo objects to be returned before you can access the array.

Wenn Sie also mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFiles kann effizienter sein.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Diese Methode füllt vorab die Werte der folgenden FileInfo Eigenschaften auf:This method pre-populates the values of the following FileInfo properties:

Die zurückgegebene Auflistung wird nicht zwischengespeichert. jeder Aufrufe der GetEnumerator -Methode für die-Auflistung startet eine neue-Enumeration.The returned collection is not cached; each call to the GetEnumerator method on the collection will start a new enumeration.

EnumerateFiles(String, EnumerationOptions)

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>

Parameter

searchPattern
String
enumerationOptions
EnumerationOptions

Gibt zurück

EnumerateFiles(String, SearchOption)

Gibt eine aufzählbare Auflistung von Dateiinformationen zurück, die einem angegebenen Suchmuster und einer angegebenen Option zum Durchsuchen von Unterverzeichnissen entspricht.Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

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>

Parameter

searchPattern
String

Die Suchzeichenfolge für die Überprüfung der Namen von Dateien auf Übereinstimmungen.The search string to match against the names of files. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption

Einer der Enumerationswerte, der angibt, ob nur das aktuelle Verzeichnis oder auch alle Unterverzeichnisse durchsucht werden sollen.One of the enumeration values that specifies whether the search operation should include only the current directory or all subdirectories. Der Standardwert ist TopDirectoryOnlysein.The default value is TopDirectoryOnly.

Gibt zurück

Eine aufzählbare Auflistung von Dateien, die searchPattern und searchOption entspricht.An enumerable collection of files that matches searchPattern and searchOption.

Ausnahmen

searchPattern ist null.searchPattern is null.

searchOption ist kein gültiger SearchOption-Wert.searchOption is not a valid SearchOption value.

Der im DirectoryInfo -Objekt gekapselte Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).The path encapsulated in the DirectoryInfo object is invalid (for example, it is on an unmapped drive).

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Dateien in einem Verzeichnis mithilfe verschiedener Suchoptionen aufgelistet werden.The following example shows how to enumerate files in a directory by using different search options. Im Beispiel wird davon ausgegangen, dass ein Verzeichnis mit Dateien namens log1. txt, log2. txt, test1. txt, test2. txt, "test3". txt und ein Unterverzeichnis mit der Datei "subfile. txt" enthält.The example assumes a directory that has files named log1.txt, log2.txt, test1.txt, test2.txt, test3.txt, and a subdirectory that has a file named 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 . . .

*/

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 . . .

Hinweise

searchPattern kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Die folgenden Platzhalter spezifiatoren sind in searchPatternzulässig.The following wildcard specifiers are permitted in searchPattern.

Platzhalter BezeichnerWildcard specifier ÜbereinstimmungenMatches
* (Sternchen)* (asterisk) NULL oder mehr Zeichen an dieser Position.Zero or more characters in that position.
?? (Fragezeichen)(question mark) NULL oder ein Zeichen an dieser Position.Zero or one character in that position.

Andere Zeichen als der Platzhalter sind Literalzeichen.Characters other than the wildcard are literal characters. Beispielsweise sucht die Zeichenfolge "* t" nach allen Namen, die mit dem Buchstaben "t" enden.For example, the string "*t" searches for all names in ending with the letter "t". ".". Die searchPattern Zeichenfolge "*s" path sucht nach allen Namen, die mit dem Buchstaben "s" beginnen.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Die EnumerateFiles Methoden GetFiles und unterscheiden sich wie folgt:The EnumerateFiles and GetFiles methods differ as follows:

  • Wenn Sie verwenden EnumerateFiles, können Sie mit dem Auflisten der Auflistung von FileInfo -Objekten beginnen, bevor die gesamte Auflistung zurückgegeben wird.When you use EnumerateFiles, you can start enumerating the collection of FileInfo objects before the whole collection is returned.

  • Wenn Sie verwenden GetFiles, müssen Sie warten, bis das gesamte Array FileInfo von-Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.When you use GetFiles, you must wait for the whole array of FileInfo objects to be returned before you can access the array.

Wenn Sie also mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFiles kann effizienter sein.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Diese Methode füllt vorab die Werte der folgenden FileInfo Eigenschaften auf:This method pre-populates the values of the following FileInfo properties:

Die zurückgegebene Auflistung wird nicht zwischengespeichert. jeder Aufrufe der GetEnumerator -Methode für die-Auflistung startet eine neue-Enumeration.The returned collection is not cached; each call to the GetEnumerator method on the collection will start a new enumeration.

Gilt für: