(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Directory.EnumerateDirectories-Methode (String, String, SearchOption)

Gibt eine aufzählbare Auflistung von Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.

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

public static IEnumerable<string> EnumerateDirectories(
	string path,
	string searchPattern,
	SearchOption searchOption
)

Parameter

path
Typ: System.String
Der relative oder absolute Pfad zu durchsuchende Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht berücksichtigt.
searchPattern
Typ: System.String
Die Suchzeichenfolge für die Überprüfung der Namen von Verzeichnissen in path auf Übereinstimmungen. Dieser Parameter kann eine Kombination von gültigen literalen Pfads und Platzhalter(* und?) Zeichen enthält (siehe Hinweise), unterstützt jedoch nicht reguläre Ausdrücke.
searchOption
Typ: System.IO.SearchOption
Einer der Enumerationswerte, der angibt, ob nur das aktuelle Verzeichnis oder auch alle Unterverzeichnisse durchsucht werden sollen.
Der Standardwert ist TopDirectoryOnly.

Rückgabewert

Typ: System.Collections.Generic.IEnumerable<String>
Eine aufzählbare Auflistung der vollständigen Namen (einschließlich Pfade) für die Verzeichnisse im Verzeichnis, das von path angegebenen wird und der angegebene Suchmuster und Option entsprechen.

AusnahmeBedingung
ArgumentException

path ist eine Zeichenfolge der Länge 0, der Pfad enthält nur Leerzeichen oder enthält ungültige Zeichen. Sie können für ungültige Zeichen abfragen, indem Sie die GetInvalidPathChars-Methode.

– oder –

searchPattern enthält kein gültiges Muster.

ArgumentNullException

path ist null.

- oder -

searchPattern ist null.

ArgumentOutOfRangeException

searchOption ist kein gültiger SearchOption-Wert.

DirectoryNotFoundException

path ist ungültig. Dies ist z. B. der Fall, wenn auf ein nicht zugeordnetes Laufwerk verwiesen wird.

IOException

path ist ein Dateiname.

PathTooLongException

Der angegebene Pfad, Dateiname oder die Kombination aus diesen überschreitet die vom System vorgegebene Höchstlänge. Beispielsweise dürfen auf Windows-Plattformen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.

SecurityException

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

UnauthorizedAccessException

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

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

Platzhalterspezifizierer

Übereinstimmungen

* (Sternchen)

0 oder mehr Zeichen an dieser Stelle.

? (Fragezeichen)

Genauer ein Zeichen an dieser Position.

Zeichen als dem Platzhalter sind Literalzeichen. Mit der searchPattern-Zeichenfolge "*t" werden z. B. alle Namen in path gesucht, die auf den Buchstaben "t" enden. Mit der searchPattern-Zeichenfolge "s*" werden alle Namen in path gesucht, die mit dem Buchstaben "s" beginnen.

searchPattern kann nicht in beiden Punkte beenden ("." enthalten.) oder zwei Punkte (". . ") gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorChar trotzdem kann es alle unzulässigen Zeichen enthalten. Sie können für ungültige Zeichen abfragen, indem Sie die GetInvalidPathChars-Methode.

Sie können im path-Parameter relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden als relativ zum aktuellen Arbeitsverzeichnis interpretiert, das Sie mit der GetCurrentDirectory-Methode bestimmen können. Den zurückgegebenen Verzeichnisnamen wird der Wert vorangestellt, den Sie im path-Parameter bereitgestellt haben. Wenn Sie z. B. einen relativen Pfad im path-Parameter bereitstellen, enthalten die zurückgegebenen Verzeichnisnamen einen relativen Pfad.

Die EnumerateDirectories-Methode und die GetDirectories-Methode unterscheiden sich wie folgt: Wenn Sie EnumerateDirectories verwenden, können Sie anfangen, die Auflistung von Namen aufzulisten, bevor die ganze Auflistung zurückgegeben wird; wenn Sie GetDirectories verwenden, müssen Sie warten, bis das ganze Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Wenn Sie daher mit vielen Dateien und Verzeichnissen arbeiten, kann EnumerateDirectories effizienter sein.

Die zurückgegebene Auflistung wird nicht zwischengespeichert; jeder Anruf von GetEnumerator für die Auflistung startet eine neue Enumeration.

Im folgenden Beispiel werden Verzeichnisse in einem angegebenen Pfad aufgelistet, die einem angegebenen Suchmuster entsprechen. Es verwendet den anzugebenden searchOption-Parameter, um anzugeben, dass alle Unterverzeichnisse in der Suche enthalten sein sollten.


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

class Program
{

    private static void Main(string[] args)
    {
        try
        {
            string dirPath = @"\\archives\2009\reports";

            // LINQ query.
            var dirs = from dir in 
                     Directory.EnumerateDirectories(dirPath, "dv_*",
                     	SearchOption.AllDirectories)
                       select dir;

            // Show results.
            foreach (var dir in dirs)
            {
                // Remove path information from string.
                Console.WriteLine("{0}", 
                    dir.Substring(dir.LastIndexOf("\\") + 1));

            }
            Console.WriteLine("{0} directories found.", 
                dirs.Count<string>().ToString());

            // Optionally create a List collection.
            List<string> workDirs = new List<string>(dirs);
        }
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft