Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

DirectoryInfo.GetFiles-Methode: (String, SearchOption)

 

Veröffentlicht: Oktober 2016

Gibt eine Dateiliste des aktuellen Verzeichnisses zurück, das dem angegebenen Suchmuster entspricht. Anhand eines Werts wird bestimmt, ob in Unterverzeichnissen gesucht wird.

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

public FileInfo[] GetFiles(
	string searchPattern,
	SearchOption searchOption
)

Parameter

searchPattern
Type: System.String

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

searchOption
Type: System.IO.SearchOption

Einer der Enumerationswerte, der angibt, ob nur das aktuelle Verzeichnis oder auch alle Unterverzeichnisse durchsucht werden sollen.

Rückgabewert

Type: System.IO.FileInfo[]

Ein Array vom Typ FileInfo.

Exception Condition
ArgumentException

searchPattern enthält mindestens ein ungültiges Zeichen gemäß der Definition der GetInvalidPathChars-Methode.

ArgumentNullException

searchPattern ist null.

ArgumentOutOfRangeException

searchOption ist kein gültiger SearchOption-Wert.

DirectoryNotFoundException

Der Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).

SecurityException

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

Die EnumerateFiles und GetFiles Methoden unterscheiden sich wie folgt:

  • Bei Verwendung EnumerateFiles, können Sie anfangen die Auflistung der FileInfo Objekte, bevor die ganze Auflistung zurückgegeben wird.

  • Bei Verwendung GetFiles, müssen Sie warten, bis das gesamte Array von FileInfo -Objekten zurückgegeben wird, bevor Sie das Array zugreifen können.

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

Wenn keine in Dateien den DirectoryInfo, diese Methode ein leeres Array zurück.

Die folgenden Bezeichner für Platzhalter sind zulässig, searchPattern.

Platzhalterzeichen

Beschreibung

* (Sternchen)

NULL oder mehr Zeichen.

? (Fragezeichen)

Genau 0 (null) oder ein Zeichen.

Die Reihenfolge der zurückgegebenen Dateinamen ist nicht festgelegt. Verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.

Platzhalter sind zulässig. Zum Beispiel die searchPattern Zeichenfolge "*.txt" sucht alle Namen, die mit der Erweiterung "Txt"-Datei. Die searchPattern Zeichenfolge "s *" sucht für alle Dateinamen, die mit dem Buchstaben "s" beginnen. Es sind keine Dateien oder keine Dateien, entsprechen die searchPattern Zeichenfolge in die DirectoryInfo, diese Methode ein leeres Array zurück.

System_CAPS_noteHinweis

Bei Verwendung des Platzhalterzeichens Sternchen in einem searchPattern (z. B. "*.txt"), das entsprechende Verhalten ändert sich abhängig von der angegebenen Erweiterung. Ein searchPattern mit einer Datei Erweiterung von genau drei Zeichen gibt Dateien mit der Erweiterung von drei oder mehr Zeichen, bei denen die ersten drei Zeichen die Erweiterung im angegebenen übereinstimmen der searchPattern. Ein searchPattern mit einer Datei Erweiterung von einem, zwei oder mehr als drei Zeichen gibt nur die Dateien mit den Erweiterungen genau, dass die Länge, die die Erweiterung der Datei im angegebenen entsprechen den searchPattern. Wenn Sie das Fragezeichen als Platzhalterzeichen verwenden, gibt diese Methode nur die Dateien, die mit die angegebenen Erweiterung übereinstimmen. Angenommen, zwei Dateien in einem Verzeichnis, "file1.txt" und "file1.txtother" Suchmuster "Datei?. TXT"gibt nur die erste Datei, während Suchmuster"Suchmuster"beide Dateien zurückgibt.

In der folgenden Liste wird das Verhalten der verschiedenen Längen der searchPattern Parameter:

  • "* .abc" gibt Dateien mit einer Erweiterung of.abc,.abcd,.abcde,.abcdef und so weiter.

  • "*.abcd" gibt ausschließlich Dateien mit der Erweiterung.abcd zurück.

  • "*.abcde" gibt ausschließlich Dateien mit der Erweiterung.abcde zurück.

  • "*.abcdef" gibt ausschließlich Dateien mit der Erweiterung.abcdef zurück.

System_CAPS_noteHinweis

Da diese Methode Dateinamen mit der der 8.3-Namensformat und dem langen Dateinamenformat überprüft, ein Suchmuster "* 1" möglicherweise unerwartete Dateinamen zurückgegeben. Verwenden Sie z. B. Suchmuster "* 1" wird "longfilename.txt" zurückgegeben, da das entsprechende 8.3-Dateinamenformat "longf~1.txt" wäre.

Diese Methode füllt vorab die Werte der folgenden FileInfo Eigenschaften:

  1. Attributes

  2. CreationTime

  3. CreationTimeUtc

  4. LastAccessTime

  5. LastAccessTimeUtc

  6. LastWriteTime

  7. LastWriteTimeUtc

  8. Length

Im folgenden Beispiel wird veranschaulicht, wie eine Liste von Dateien aus einem Verzeichnis abrufen, mit unterschiedlichen Suchoptionen. Im Beispiel wird vorausgesetzt, 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:\Users\tomfitz\Documents\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.GetFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.GetFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.GetFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", 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 . . .

*/

FileIOPermission

for access to the path and for reading from files and directories. Associated enumerations: F:System.Security.Permissions.FileIOPermissionAccess.Read, F:System.Security.Permissions.FileIOPermissionAccess.PathDiscovery

Universelle Windows-Plattform
Verfügbar seit 10
.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: