DirectoryInfo.EnumerateDirectories Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt eine aufzählbare Auflistung von Verzeichnisinformationen im aktuellen Verzeichnis zurück.
Überlädt
EnumerateDirectories(String, SearchOption) |
Gibt eine aufzählbare Auflistung von Verzeichnisinformationen zurück, die einem angegebenen Suchmuster und einer angegebenen Option zum Durchsuchen von Unterverzeichnissen entspricht. |
EnumerateDirectories(String, EnumerationOptions) |
Gibt eine aufzählbare Sammlung von Verzeichnisinformationen zurück, die dem angegebenen Suchmuster und der angegebenen Option entspricht |
EnumerateDirectories() |
Gibt eine aufzählbare Auflistung von Verzeichnisinformationen im aktuellen Verzeichnis zurück. |
EnumerateDirectories(String) |
Gibt eine aufzählbare Auflistung von Verzeichnisinformationen zurück, die einem angegebenen Suchmuster entsprechen. |
EnumerateDirectories(String, SearchOption)
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
Gibt eine aufzählbare Auflistung von Verzeichnisinformationen zurück, die einem angegebenen Suchmuster und einer angegebenen Option zum Durchsuchen von Unterverzeichnissen entspricht.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern, System.IO.SearchOption searchOption);
member this.EnumerateDirectories : string * System.IO.SearchOption -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String, searchOption As SearchOption) As IEnumerable(Of DirectoryInfo)
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Verzeichnissen auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.
- searchOption
- SearchOption
Einer der Enumerationswerte, der angibt, ob nur das aktuelle Verzeichnis oder auch alle Unterverzeichnisse durchsucht werden sollen. Der Standardwert ist TopDirectoryOnly.
Gibt zurück
Eine aufzählbare Auflistung von Verzeichnissen, die searchPattern
und searchOption
entspricht.
Ausnahmen
searchPattern
ist null
.
searchOption
ist kein gültiger SearchOption-Wert.
Der im DirectoryInfo -Objekt gekapselte Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Im folgenden Beispiel werden diese Methode und die EnumerateFiles -Methode verwendet, um die Dateien und Verzeichnisse im Startverzeichnis aufzulisten und den Namen und die Größe aller Dateien über 10 MB anzuzeigen.
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// Set a variable to the My Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
DirectoryInfo diTop = new DirectoryInfo(docPath);
try
{
foreach (var fi in diTop.EnumerateFiles())
{
try
{
// Display each file over 10 MB.
if (fi.Length > 10000000)
{
Console.WriteLine($"{fi.FullName}\t\t{fi.Length:N0}");
}
}
catch (UnauthorizedAccessException unAuthTop)
{
Console.WriteLine($"{unAuthTop.Message}");
}
}
foreach (var di in diTop.EnumerateDirectories("*"))
{
try
{
foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
{
try
{
// Display each file over 10 MB.
if (fi.Length > 10000000)
{
Console.WriteLine($"{fi.FullName}\t\t{fi.Length:N0}");
}
}
catch (UnauthorizedAccessException unAuthFile)
{
Console.WriteLine($"unAuthFile: {unAuthFile.Message}");
}
}
}
catch (UnauthorizedAccessException unAuthSubDir)
{
Console.WriteLine($"unAuthSubDir: {unAuthSubDir.Message}");
}
}
}
catch (DirectoryNotFoundException dirNotFound)
{
Console.WriteLine($"{dirNotFound.Message}");
}
catch (UnauthorizedAccessException unAuthDir)
{
Console.WriteLine($"unAuthDir: {unAuthDir.Message}");
}
catch (PathTooLongException longPath)
{
Console.WriteLine($"{longPath.Message}");
}
}
}
open System
open System.IO
// Set a variable to the My Documents path.
let docPath = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments
let diTop = DirectoryInfo docPath
try
for fi in diTop.EnumerateFiles() do
try
// Display each file over 10 MB.
if fi.Length > 10000000 then
printfn $"{fi.FullName}\t\t{fi.Length:N0}"
with :? UnauthorizedAccessException as unAuthTop ->
printfn $"{unAuthTop.Message}"
for di in diTop.EnumerateDirectories "*" do
try
for fi in di.EnumerateFiles("*", SearchOption.AllDirectories) do
try
// Display each file over 10 MB.
if fi.Length > 10000000 then
printfn $"{fi.FullName}\t\t{fi.Length:N0}"
with :? UnauthorizedAccessException as unAuthFile ->
printfn $"unAuthFile: {unAuthFile.Message}"
with :? UnauthorizedAccessException as unAuthSubDir ->
printfn $"unAuthSubDir: {unAuthSubDir.Message}"
with
| :? DirectoryNotFoundException as dirNotFound ->
Console.WriteLine($"{dirNotFound.Message}")
| :? UnauthorizedAccessException as unAuthDir ->
printfn $"unAuthDir: {unAuthDir.Message}"
| :? PathTooLongException as longPath ->
printfn $"{longPath.Message}"
Imports System.IO
Class Program
Public Shared Sub Main(ByVal args As String())
Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim diTop As New DirectoryInfo(dirPath)
Try
For Each fi In diTop.EnumerateFiles()
Try
' Display each file over 10 MB;
If fi.Length > 10000000 Then
Console.WriteLine("{0}" & vbTab & vbTab & "{1}", fi.FullName, fi.Length.ToString("N0"))
End If
Catch unAuthTop As UnauthorizedAccessException
Console.WriteLine($"{unAuthTop.Message}")
End Try
Next
For Each di In diTop.EnumerateDirectories("*")
Try
For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
Try
' // Display each file over 10 MB;
If fi.Length > 10000000 Then
Console.WriteLine("{0}" & vbTab &
vbTab & "{1}", fi.FullName, fi.Length.ToString("N0"))
End If
Catch unAuthFile As UnauthorizedAccessException
Console.WriteLine($"unAuthFile: {unAuthFile.Message}")
End Try
Next
Catch unAuthSubDir As UnauthorizedAccessException
Console.WriteLine($"unAuthSubDir: {unAuthSubDir.Message}")
End Try
Next
Catch dirNotFound As DirectoryNotFoundException
Console.WriteLine($"{dirNotFound.Message}")
Catch unAuthDir As UnauthorizedAccessException
Console.WriteLine($"unAuthDir: {unAuthDir.Message}")
Catch longPath As PathTooLongException
Console.WriteLine($"{longPath.Message}")
End Try
End Sub
End Class
Hinweise
searchPattern
kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt. Die folgenden Wildcard-Spezifizierer sind in searchPattern
zulässig.
Wildcard-Spezifizierer | Treffer |
---|---|
* (Sternchen) | Null oder mehr Zeichen an dieser Position. |
? (Fragezeichen) | Null oder ein Zeichen in dieser Position. |
Andere Zeichen als das Feldhalter sind Literalzeichen. Die Zeichenfolge "*t" sucht beispielsweise nach allen Namen, die mit dem Buchstaben "t" enden. ". Die searchPattern
Zeichenfolge "s*" sucht nach allen Namen, path
die mit dem Buchstaben "s" beginnen.
Die EnumerateDirectories Methoden und GetDirectories unterscheiden sich wie folgt:
Wenn Sie verwenden EnumerateDirectories, können Sie mit der Auflistung der DirectoryInfo Objekte beginnen, bevor die gesamte Auflistung zurückgegeben wird.
Wenn Sie verwenden GetDirectories, müssen Sie warten, bis das gesamte Array von DirectoryInfo Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.
Wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateDirectories kann es daher effizienter sein.
Diese Methode füllt die Werte der folgenden DirectoryInfo Eigenschaften vorab auf:
Die zurückgegebene Sammlung wird nicht zwischengespeichert. Jeder Aufruf der GetEnumerator -Methode in der Auflistung startet eine neue Enumeration.
Gilt für:
EnumerateDirectories(String, EnumerationOptions)
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
Gibt eine aufzählbare Sammlung von Verzeichnisinformationen zurück, die dem angegebenen Suchmuster und der angegebenen Option entspricht
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.EnumerateDirectories : string * System.IO.EnumerationOptions -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of DirectoryInfo)
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Verzeichnissen auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.
- enumerationOptions
- EnumerationOptions
Ein Objekt, das die zu verwendende Such- und Enumerationskonfiguration beschreibt.
Gibt zurück
Eine aufzählbare Auflistung von Verzeichnissen, die searchPattern
und enumerationOptions
entspricht.
Ausnahmen
searchPattern
ist null
.
Der im DirectoryInfo -Objekt gekapselte Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Hinweise
searchPattern
kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt. Die folgenden Wildcard-Spezifizierer sind in searchPattern
zulässig.
Wildcard-Spezifizierer | Treffer |
---|---|
* (Sternchen) | Null oder mehr Zeichen an dieser Position. |
? (Fragezeichen) | Null oder ein Zeichen in dieser Position. |
Andere Zeichen als das Feldhalter sind Literalzeichen. Die Zeichenfolge "*t" sucht beispielsweise nach allen Namen, die mit dem Buchstaben "t" enden. ". Die searchPattern
Zeichenfolge "s*" sucht nach allen Namen, path
die mit dem Buchstaben "s" beginnen.
Die EnumerateDirectories Methoden und GetDirectories unterscheiden sich wie folgt:
Wenn Sie verwenden EnumerateDirectories, können Sie mit der Auflistung der DirectoryInfo Objekte beginnen, bevor die gesamte Auflistung zurückgegeben wird.
Wenn Sie verwenden GetDirectories, müssen Sie warten, bis das gesamte Array von DirectoryInfo Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.
Wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateDirectories kann es daher effizienter sein.
Diese Methode füllt die Werte der folgenden DirectoryInfo Eigenschaften vorab auf:
Die zurückgegebene Sammlung wird nicht zwischengespeichert. Jeder Aufruf der GetEnumerator -Methode in der Auflistung startet eine neue Enumeration.
Gilt für:
EnumerateDirectories()
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
Gibt eine aufzählbare Auflistung von Verzeichnisinformationen im aktuellen Verzeichnis zurück.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories();
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories ();
member this.EnumerateDirectories : unit -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories () As IEnumerable(Of DirectoryInfo)
Gibt zurück
Eine aufzählbare Auflistung der Verzeichnisse im aktuellen Verzeichnis.
Ausnahmen
Der im DirectoryInfo -Objekt gekapselte Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Das folgende Beispiel listet die Unterverzeichnisse unter dem Verzeichnis C:\Programme auf und verwendet eine LINQ-Abfrage, um die Namen aller Verzeichnisse zurückzugeben, die vor 2009 erstellt wurden, indem der Wert der CreationTimeUtc Eigenschaft überprüft wird.
Wenn Sie nur die Namen der Unterverzeichnisse benötigen, verwenden Sie die statische Directory Klasse, um die Leistung zu verbessern. Ein Beispiel finden Sie in der EnumerateDirectories(String) -Methode.
using System;
using System.IO;
namespace EnumDir
{
class Program
{
static void Main(string[] args)
{
// Set a variable to the Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
DirectoryInfo dirPrograms = new DirectoryInfo(docPath);
DateTime StartOf2009 = new DateTime(2009, 01, 01);
var dirs = from dir in dirPrograms.EnumerateDirectories()
where dir.CreationTimeUtc > StartOf2009
select new
{
ProgDir = dir,
};
foreach (var di in dirs)
{
Console.WriteLine($"{di.ProgDir.Name}");
}
}
}
}
// </Snippet1>
module program
// <Snippet1>
open System
open System.IO
// Set a variable to the Documents path.
let docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
let dirPrograms = DirectoryInfo docPath
let startOf2009 = DateTime(2009, 01, 01)
let dirs =
query {
for dir in dirPrograms.EnumerateDirectories() do
where (dir.CreationTimeUtc > startOf2009)
select {| ProgDir = dir |}
}
for di in dirs do
printfn $"{di.ProgDir.Name}"
// </Snippet1>
Imports System.IO
Module Module1
Sub Main()
Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim dirPrograms As New DirectoryInfo(dirPath)
Dim StartOf2009 As New DateTime(2009, 1, 1)
Dim dirs = From dir In dirPrograms.EnumerateDirectories()
Where dir.CreationTimeUtc > StartOf2009
For Each di As DirectoryInfo In dirs
Console.WriteLine("{0}", di.Name)
Next
End Sub
End Module
Hinweise
Die EnumerateDirectories Methoden und GetDirectories unterscheiden sich wie folgt:
Wenn Sie verwenden EnumerateDirectories, können Sie mit der Auflistung der DirectoryInfo Objekte beginnen, bevor die gesamte Auflistung zurückgegeben wird.
Wenn Sie verwenden GetDirectories, müssen Sie warten, bis das gesamte Array von DirectoryInfo Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.
Wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateDirectories kann es daher effizienter sein.
Diese Methode füllt die Werte der folgenden DirectoryInfo Eigenschaften vorab auf:
Die zurückgegebene Sammlung wird nicht zwischengespeichert. Jeder Aufruf der GetEnumerator -Methode in der Auflistung startet eine neue Enumeration.
Gilt für:
EnumerateDirectories(String)
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
Gibt eine aufzählbare Auflistung von Verzeichnisinformationen zurück, die einem angegebenen Suchmuster entsprechen.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern);
member this.EnumerateDirectories : string -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String) As IEnumerable(Of DirectoryInfo)
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Verzeichnissen auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.
Gibt zurück
Eine aufzählbare Auflistung von Verzeichnissen, die searchPattern
entspricht.
Ausnahmen
searchPattern
ist null
.
Der im DirectoryInfo -Objekt gekapselte Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Hinweise
searchPattern
kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt. Die folgenden Wildcard-Spezifizierer sind in searchPattern
zulässig.
Wildcard-Spezifizierer | Treffer |
---|---|
* (Sternchen) | Null oder mehr Zeichen an dieser Position. |
? (Fragezeichen) | Null oder ein Zeichen in dieser Position. |
Andere Zeichen als das Feldhalter sind Literalzeichen. Die Zeichenfolge "*t" sucht beispielsweise nach allen Namen, die mit dem Buchstaben "t" enden. ". Die searchPattern
Zeichenfolge "s*" sucht nach allen Namen, path
die mit dem Buchstaben "s" beginnen.
Die EnumerateDirectories Methoden und GetDirectories unterscheiden sich wie folgt:
Wenn Sie verwenden EnumerateDirectories, können Sie mit der Auflistung der DirectoryInfo Objekte beginnen, bevor die gesamte Auflistung zurückgegeben wird.
Wenn Sie verwenden GetDirectories, müssen Sie warten, bis das gesamte Array von DirectoryInfo Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.
Wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateDirectories kann es daher effizienter sein.
Diese Methode füllt die Werte der folgenden DirectoryInfo Eigenschaften vorab auf:
Die zurückgegebene Sammlung wird nicht zwischengespeichert. Jeder Aufruf der GetEnumerator -Methode in der Auflistung startet eine neue Enumeration.