Directory.EnumerateDirectories Methode

Definitie

Retourneert een inventariserbare verzameling volledige namen van mappen die voldoen aan de opgegeven criteria.

Overloads

Name Description
EnumerateDirectories(String)

Retourneert een opsommingsbare verzameling map volledige namen in een opgegeven pad.

EnumerateDirectories(String, String)

Hiermee wordt een opsommingsbare verzameling mapnamen geretourneerd die overeenkomen met een zoekpatroon in een opgegeven pad.

EnumerateDirectories(String, String, EnumerationOptions)

Retourneert een opsommingsbare verzameling van de map volledige namen die overeenkomen met een zoekpatroon in een opgegeven pad en zoekt desgewenst submappen.

EnumerateDirectories(String, String, SearchOption)

Retourneert een opsommingsbare verzameling map volledige namen die overeenkomen met een zoekpatroon in een opgegeven pad en zoekt eventueel in submappen.

EnumerateDirectories(String)

Retourneert een opsommingsbare verzameling map volledige namen in een opgegeven pad.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path);
static member EnumerateDirectories : string -> seq<string>
Public Shared Function EnumerateDirectories (path As String) As IEnumerable(Of String)

Parameters

path
String

Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.

Retouren

Een inventariserbare verzameling van de volledige namen (inclusief paden) voor de mappen in de map die is opgegeven door path.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.

path is null.

path is ongeldig, zoals het verwijzen naar een niet-toegewezen station.

path is een bestandsnaam.

Het opgegeven pad, de bestandsnaam of de gecombineerde waarde overschrijdt de door het systeem gedefinieerde maximumlengte.

De beller heeft niet de vereiste machtiging.

De beller heeft niet de vereiste machtiging.

Voorbeelden

In het volgende voorbeeld worden de mappen op het hoogste niveau in een opgegeven pad opgesomd.

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

class Program
{
    private static void Main(string[] args)
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            List<string> dirs = new List<string>(Directory.EnumerateDirectories(docPath));

            foreach (var dir in dirs)
            {
                Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}");
            }
            Console.WriteLine($"{dirs.Count} directories found.");
        }
        catch (UnauthorizedAccessException ex)
        {
            Console.WriteLine(ex.Message);
        }
        catch (PathTooLongException ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}
open System
open System.IO

try
    // Set a variable to the My Documents path.
    let docPath = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments

    let dirs = Directory.EnumerateDirectories docPath |> Seq.toList

    for dir in dirs do
        printfn $"{dir.Substring(dir.LastIndexOf Path.DirectorySeparatorChar + 1)}"
    printfn $"{dirs.Length} directories found."

with
| :? UnauthorizedAccessException as ex ->
    printfn $"{ex.Message}"
| :? PathTooLongException as ex ->
    printfn $"{ex.Message}"
Imports System.Collections.Generic
Imports System.IO

Module Module1

    Sub Main()
        Try
            Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

            Dim dirs As List(Of String) = New List(Of String)(Directory.EnumerateDirectories(dirPath))

            For Each folder In dirs
                Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}")
            Next
            Console.WriteLine($"{dirs.Count} directories found.")
        Catch ex As UnauthorizedAccessException
            Console.WriteLine(ex.Message)
        Catch ex As PathTooLongException
            Console.WriteLine(ex.Message)
        End Try

    End Sub
End Module

Opmerkingen

U kunt relatieve of absolute padgegevens opgeven in de path parameter. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap, die u kunt bepalen met behulp van de GetCurrentDirectory methode. De geretourneerde mapnamen worden voorafgegaan door de waarde die u hebt opgegeven in de path parameter. Als u bijvoorbeeld een relatief pad in de path parameter opgeeft, bevatten de geretourneerde mapnamen een relatief pad.

De EnumerateDirectories en GetDirectories methoden verschillen als volgt: Wanneer u gebruikt EnumerateDirectories, kunt u beginnen met het inventariseren van de verzameling namen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt GetDirectories, moet u wachten totdat de hele matrix met namen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met veel bestanden en mappen EnumerateDirectories werkt.

De geretourneerde verzameling wordt niet in de cache opgeslagen; bij elke aanroep van de GetEnumerator verzameling wordt een nieuwe inventarisatie gestart.

Van toepassing op

EnumerateDirectories(String, String)

Hiermee wordt een opsommingsbare verzameling mapnamen geretourneerd die overeenkomen met een zoekpatroon in een opgegeven pad.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern);
static member EnumerateDirectories : string * string -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String) As IEnumerable(Of String)

Parameters

path
String

Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.

searchPattern
String

De zoekreeks die overeenkomt met de namen van mappen in path. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.

Retouren

Een inventariserbare verzameling van de volledige namen (inclusief paden) voor de mappen in de map die is opgegeven door path en die overeenkomen met het opgegeven zoekpatroon.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met de GetInvalidPathChars() methode.

– of –

searchPattern bevat geen geldig patroon.

path is null.

– of –

searchPattern is null.

path is ongeldig, zoals het verwijzen naar een niet-toegewezen station.

path is een bestandsnaam.

Het opgegeven pad, de bestandsnaam of de gecombineerde waarde overschrijdt de door het systeem gedefinieerde maximumlengte.

De beller heeft niet de vereiste machtiging.

De beller heeft niet de vereiste machtiging.

Voorbeelden

In het volgende voorbeeld worden de mappen op het hoogste niveau opgesomd in een opgegeven pad dat overeenkomt met een opgegeven zoekpatroon.

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_*")
                       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);
        }
    }
}
open System
open System.IO

try
    let dirPath = @"\\archives\2009\reports"

    let dirs = 
        Directory.EnumerateDirectories(dirPath, "dv_*")
        |> Seq.cache

    // Show results.
    for dir in dirs do
        // Remove path information from string.
        printfn $"{dir.Substring(dir.LastIndexOf '\\' + 1)}"
    printfn $"{Seq.length dirs} directories found."

    // Optionally create a list collection.
    let workDirs = Seq.toList dirs
    ()
    
with 
| :? UnauthorizedAccessException as uaEx ->
    printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
    printfn $"{pathEx.Message}"
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            Dim dirPath As String = "\\archives\2009\reports"

            ' LINQ query.
            Dim dirs = From folder In _
                Directory.EnumerateDirectories(dirPath, "dv_*")
            For Each folder In dirs
                ' Remove path infomration from string.
                Console.WriteLine("{0}", _
                        folder.Substring(folder.LastIndexOf("\") + 1))
            Next
            Console.WriteLine("{0} directories found.", _
                dirs.Count.ToString())

            ' Optionally create a List collection.
            Dim workDirs As List(Of String) = New List(Of String)

        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub
End Module

Opmerkingen

searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.

Jokertekenaanduiding Overeenkomsten
* (sterretje) Nul of meer tekens op die positie.
? (vraagteken) Precies één teken in die positie.

Andere tekens dan het jokerteken zijn letterlijke tekens. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.

searchPattern kan niet eindigen in twee perioden ("..") of twee punten ("."), gevolgd door DirectorySeparatorChar of AltDirectorySeparatorChar, noch mogen deze ongeldige tekens bevatten. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars methode.

U kunt relatieve of absolute padgegevens opgeven in de path parameter. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap, die u kunt bepalen met behulp van de GetCurrentDirectory methode. De geretourneerde mapnamen worden voorafgegaan door de waarde die u hebt opgegeven in de path parameter. Als u bijvoorbeeld een relatief pad in de path parameter opgeeft, bevatten de geretourneerde mapnamen een relatief pad.

De EnumerateDirectories en GetDirectories methoden verschillen als volgt: Wanneer u gebruikt EnumerateDirectories, kunt u beginnen met het inventariseren van de verzameling namen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt GetDirectories, moet u wachten totdat de hele matrix met namen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met veel bestanden en mappen EnumerateDirectories werkt.

De geretourneerde verzameling wordt niet in de cache opgeslagen; bij elke aanroep van de GetEnumerator verzameling wordt een nieuwe inventarisatie gestart.

Van toepassing op

EnumerateDirectories(String, String, EnumerationOptions)

Retourneert een opsommingsbare verzameling van de map volledige namen die overeenkomen met een zoekpatroon in een opgegeven pad en zoekt desgewenst submappen.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateDirectories : string * string * System.IO.EnumerationOptions -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of String)

Parameters

path
String

Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.

searchPattern
String

De zoekreeks die overeenkomt met de namen van mappen in path. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.

enumerationOptions
EnumerationOptions

Een object dat de zoek- en opsommingsconfiguratie beschrijft die moet worden gebruikt.

Retouren

Een inventariserbare verzameling van de volledige namen (inclusief paden) voor de mappen in de map die is opgegeven door path en die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.

– of –

searchPattern bevat geen geldig patroon.

path of searchPattern is null.

path is ongeldig, zoals het verwijzen naar een niet-toegewezen station.

path is een bestandsnaam.

Het opgegeven pad, de bestandsnaam of de gecombineerde waarde overschrijdt de door het systeem gedefinieerde maximumlengte.

De beller heeft niet de vereiste machtiging.

De beller heeft niet de vereiste machtiging.

Opmerkingen

searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.

Jokertekenaanduiding Overeenkomsten
* (sterretje) Nul of meer tekens op die positie.
? (vraagteken) Precies één teken in die positie.

Andere tekens dan het jokerteken zijn letterlijke tekens. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.

searchPattern kan niet eindigen in twee perioden ("..") of twee punten ("."), gevolgd door DirectorySeparatorChar of AltDirectorySeparatorChar, noch mogen deze ongeldige tekens bevatten. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars methode.

U kunt relatieve of absolute padgegevens opgeven in de path parameter. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap, die u kunt bepalen met behulp van de GetCurrentDirectory methode. De geretourneerde mapnamen worden voorafgegaan door de waarde die u hebt opgegeven in de path parameter. Als u bijvoorbeeld een relatief pad in de path parameter opgeeft, bevatten de geretourneerde mapnamen een relatief pad.

De EnumerateDirectories en GetDirectories methoden verschillen als volgt: Wanneer u gebruikt EnumerateDirectories, kunt u beginnen met het inventariseren van de verzameling namen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt GetDirectories, moet u wachten totdat de hele matrix met namen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met veel bestanden en mappen EnumerateDirectories werkt.

De geretourneerde verzameling wordt niet in de cache opgeslagen; bij elke aanroep van de GetEnumerator verzameling wordt een nieuwe inventarisatie gestart.

Van toepassing op

EnumerateDirectories(String, String, SearchOption)

Retourneert een opsommingsbare verzameling map volledige namen die overeenkomen met een zoekpatroon in een opgegeven pad en zoekt eventueel in submappen.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateDirectories : string * string * System.IO.SearchOption -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String, searchOption As SearchOption) As IEnumerable(Of String)

Parameters

path
String

Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.

searchPattern
String

De zoekreeks die overeenkomt met de namen van mappen in path. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.

searchOption
SearchOption

Een van de opsommingswaarden die aangeeft of de zoekbewerking alleen de huidige map moet bevatten of alle submappen moet bevatten. De standaardwaarde is TopDirectoryOnly.

Retouren

Een inventariserbare verzameling van de volledige namen (inclusief paden) voor de mappen in de map die is opgegeven door path en die overeenkomen met het opgegeven zoekpatroon en de zoekoptie.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.

– of –

searchPattern bevat geen geldig patroon.

path is null.

– of –

searchPattern is null.

searchOption is geen geldige SearchOption waarde.

path is ongeldig, zoals het verwijzen naar een niet-toegewezen station.

path is een bestandsnaam.

Het opgegeven pad, de bestandsnaam of de gecombineerde waarde overschrijdt de door het systeem gedefinieerde maximumlengte.

De beller heeft niet de vereiste machtiging.

De beller heeft niet de vereiste machtiging.

Voorbeelden

In het volgende voorbeeld worden mappen opgesomd in een opgegeven pad dat overeenkomt met een opgegeven zoekpatroon. Hierbij wordt de searchOption parameter gebruikt om op te geven dat alle submappen moeten worden opgenomen in de zoekopdracht.

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);
        }
    }
}
open System
open System.IO

try
    let dirPath = @"\\archives\2009\reports"

    let dirs =
        Directory.EnumerateDirectories(dirPath, "dv_*", SearchOption.AllDirectories)
        |> Seq.cache

    // Show results.
    for dir in dirs do
        // Remove path information from string.
        printfn $"{dir.Substring(dir.LastIndexOf '\\' + 1)}"
    printfn $"{Seq.length dirs} directories found."

    // Optionally create a List collection.
    let workDirs = Seq.toList dirs
    ()

with 
| :? UnauthorizedAccessException as uaEx ->
    printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
    printfn $"{pathEx.Message}"
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            Dim dirPath As String = "\\archives\2009\reports"

            ' LINQ query.
            Dim dirs = From folder In _
                Directory.EnumerateDirectories(dirPath, "dv_*", _
                    SearchOption.AllDirectories)
            For Each folder In dirs
                ' Remove path infomration from string.
                Console.WriteLine("{0}", _
                        folder.Substring(folder.LastIndexOf("\") + 1))
            Next
            Console.WriteLine("{0} directories found.", _
                dirs.Count.ToString())

            ' Optionally create a List collection.
            Dim workDirs As List(Of String) = New List(Of String)

        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub
End Module

Opmerkingen

searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.

Jokertekenaanduiding Overeenkomsten
* (sterretje) Nul of meer tekens op die positie.
? (vraagteken) Precies één teken in die positie.

Andere tekens dan het jokerteken zijn letterlijke tekens. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.

searchPattern kan niet eindigen in twee perioden ("..") of twee punten ("."), gevolgd door DirectorySeparatorChar of AltDirectorySeparatorChar, noch mogen deze ongeldige tekens bevatten. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars methode.

U kunt relatieve of absolute padgegevens opgeven in de path parameter. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap, die u kunt bepalen met behulp van de GetCurrentDirectory methode. De geretourneerde mapnamen worden voorafgegaan door de waarde die u hebt opgegeven in de path parameter. Als u bijvoorbeeld een relatief pad in de path parameter opgeeft, bevatten de geretourneerde mapnamen een relatief pad.

De EnumerateDirectories en GetDirectories methoden verschillen als volgt: Wanneer u gebruikt EnumerateDirectories, kunt u beginnen met het inventariseren van de verzameling namen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt GetDirectories, moet u wachten totdat de hele matrix met namen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met veel bestanden en mappen EnumerateDirectories werkt.

De geretourneerde verzameling wordt niet in de cache opgeslagen; bij elke aanroep van de GetEnumerator verzameling wordt een nieuwe inventarisatie gestart.

Van toepassing op