EnumerateFiles Methode (String)

DirectoryInfo.EnumerateFiles-Methode (String)

.NET Framework (current version)
 

Gibt eine aufzählbare Auflistung von Dateiinformationen zurück, die einem Suchmuster entsprechen.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public IEnumerable<FileInfo> EnumerateFiles(
	string searchPattern
)

Parameter

                             searchPattern                         

Die Suchzeichenfolge für die Überprüfung der Namen von Dateien auf Übereinstimmungen.Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?, siehe Hinweise) enthalten, unterstützt jedoch keine regulären Ausdrücke.Das Standardmuster ist "*", wobei alle Dateien zurückgegeben werden.

Rückgabewert

Type: System.Collections.Generic.IEnumerable<FileInfo>

Eine aufzählbare Auflistung von Dateien, die entspricht searchPattern.

Exception Condition
                             T:System.ArgumentNullException                         

searchPatternist null.

                             T:System.IO.DirectoryNotFoundException                         

Gekapselte Pfad der DirectoryInfodas Objekt ist ungültig, (z. B. auf einem nicht zugeordneten Laufwerk).

                             T:System.Security.SecurityException                         

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

searchPattern kann eine Kombination des Literals und Platzhalterzeichen sein, unterstützt aber keine regulären Ausdrücke. Die folgenden Bezeichner für Platzhalter sind in zulässig. searchPattern.

Platzhalter-Spezifizierer

Entsprechungen

* (Sternchen)

NULL oder mehr Zeichen an dieser Stelle.

?(Fragezeichen)

0 (null) oder ein Zeichen an dieser Position.

Zeichen, die nicht den Platzhalter sind Literalzeichen.Z. B. die Zeichenfolge "* t" sucht nach allen Namen in der mit dem Buchstaben "t" enden. ". searchPatterndie Zeichenfolge "s *" sucht alle Namen in pathmit dem Buchstaben "s" beginnen.

EnumerateFiles und GetFilesMethoden unterscheiden sich wie folgt:

  • Bei Verwendung von EnumerateFiles, Sie können anfangen, die Auflistung von FileInfoObjekte, bevor die ganze Auflistung zurückgegeben wird.

  • Bei Verwendung von GetFiles, müssen Sie warten, bis das ganze Array von FileInfoObjekte, die zurückgegeben werden, bevor Sie das Array zugreifen können.

Daher, wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFileskann effizienter sein.

Diese Methode füllt die Werte der folgenden FileInfoEigenschaften:

Die zurückgegebene Auflistung wird nicht zwischengespeichert. Jeder Aufruf der GetEnumerator-Methode für die Auflistung startet eine neue Enumeration.

Das folgende Beispiel zeigt, wie Sie Dateien in einem Verzeichnis mit unterschiedlichen Suchoptionen auflisten.Im Beispiel wird angenommen, ein Verzeichnis mit Dateien, die mit dem Namen log1.txt, log2.txt, test1.txt, test2.txt, test3.txt und ein Unterverzeichnis, das eine Datei namens SubFile.txt verfügt.

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

*/

Universal Windows Platform
Verfügbar seit 10
.NET Framework
Verfügbar seit 4.0
Silverlight
Verfügbar seit 4.0
Zurück zum Anfang
Anzeigen:
© 2016 Microsoft