Sdílet prostřednictvím


Directory.EnumerateDirectories Metoda

Definice

Vrátí výčet kolekcí úplných názvů adresářů, které splňují zadaná kritéria.

Přetížení

EnumerateDirectories(String)

Vrátí výčet kolekcí úplných názvů adresářů v zadané cestě.

EnumerateDirectories(String, String)

Vrátí výčet kolekcí úplných jmen adresářů, které odpovídají vzoru hledání v zadané cestě.

EnumerateDirectories(String, String, EnumerationOptions)

Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

EnumerateDirectories(String, String, SearchOption)

Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

EnumerateDirectories(String)

Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs

Vrátí výčet kolekcí úplných názvů adresářů v zadané cestě.

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)

Parametry

path
String

Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.

Návraty

Výčetná kolekce úplných jmen (včetně cest) adresářů v adresáři určeném nástrojem path.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .

path je null.

path je neplatný, například odkaz na nenamapovanou jednotku.

path je název souboru.

Zadaná cesta, název souboru nebo kombinace překračuje maximální délku definovanou systémem.

Volající nemá požadované oprávnění.

Volající nemá požadované oprávnění.

Příklady

Následující příklad uvádí seznam adresářů nejvyšší úrovně v zadané cestě.

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

Poznámky

V parametru můžete zadat relativní nebo absolutní informace o cestě path . Informace o relativní cestě jsou interpretovány jako relativní vzhledem k aktuálnímu pracovnímu adresáři, který můžete určit pomocí GetCurrentDirectory metody . Názvy vrácených adresářů mají předponu s hodnotou, kterou jste zadali v parametru path . Pokud například v parametru path zadáte relativní cestu, vrácené názvy adresářů budou obsahovat relativní cestu.

Metody EnumerateDirectories a GetDirectories se liší následujícím způsobem: Při použití EnumerateDirectoriesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetDirectoriesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateDirectories může být efektivnější.

Vrácená kolekce není uložena do mezipaměti; každé volání GetEnumerator v kolekci zahájí nový výčet.

Platí pro

EnumerateDirectories(String, String)

Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs

Vrátí výčet kolekcí úplných jmen adresářů, které odpovídají vzoru hledání v zadané cestě.

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)

Parametry

path
String

Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.

searchPattern
String

Hledaný řetězec, který se má shodovat s názvy adresářů v path. Tento parametr může obsahovat kombinaci platných literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.

Návraty

Výčetná kolekce úplných jmen (včetně cest) pro adresáře v adresáři určeném a path odpovídající zadanému vzoru hledání.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat GetInvalidPathChars() na neplatné znaky.

-nebo-

searchPattern neobsahuje platný vzor.

path je null.

-nebo-

searchPattern je null.

path je neplatný, například odkaz na nenamapovanou jednotku.

path je název souboru.

Zadaná cesta, název souboru nebo kombinace překračuje maximální délku definovanou systémem.

Volající nemá požadované oprávnění.

Volající nemá požadované oprávnění.

Příklady

Následující příklad uvádí seznam adresářů nejvyšší úrovně v zadané cestě, které odpovídají zadanému vzoru hledání.

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

Poznámky

searchPattern může být kombinací literálu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPatternznaků.

Specifikátor zástupných znaků Shody
* (hvězdička) Na této pozici není žádný nebo více znaků.
? (otazník) Přesně jeden znak v této pozici.

Jiné znaky než zástupný znak jsou literálové znaky. Například searchPattern řetězec "*t" vyhledá všechna jména končící path písmenem "t". Řetězec searchPattern "s*" vyhledá všechna jména začínající path písmenem "s".

searchPattern nesmí končit dvěma tečkami ("..") nebo obsahovat dvě tečky ("..") za nimi DirectorySeparatorChar nebo AltDirectorySeparatorChar, ani nesmí obsahovat neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars .

V parametru můžete zadat relativní nebo absolutní informace o cestě path . Informace o relativní cestě jsou interpretovány jako relativní vzhledem k aktuálnímu pracovnímu adresáři, který můžete určit pomocí GetCurrentDirectory metody . Názvy vrácených adresářů mají předponu s hodnotou, kterou jste zadali v parametru path . Pokud například v parametru path zadáte relativní cestu, vrácené názvy adresářů budou obsahovat relativní cestu.

Metody EnumerateDirectories a GetDirectories se liší následujícím způsobem: Při použití EnumerateDirectoriesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetDirectoriesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateDirectories může být efektivnější.

Vrácená kolekce není uložena do mezipaměti; každé volání GetEnumerator v kolekci zahájí nový výčet.

Platí pro

EnumerateDirectories(String, String, EnumerationOptions)

Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs

Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

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)

Parametry

path
String

Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.

searchPattern
String

Hledaný řetězec, který se má shodovat s názvy adresářů v path. Tento parametr může obsahovat kombinaci platných literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.

enumerationOptions
EnumerationOptions

Objekt, který popisuje konfiguraci vyhledávání a výčtu, která se má použít.

Návraty

Výčetná kolekce úplných jmen (včetně cest) adresářů v adresáři určeném nástrojem path a odpovídající zadanému vzoru vyhledávání a možnostem výčtu.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .

-nebo-

searchPattern neobsahuje platný vzor.

path nebo searchPattern je null.

searchOption není platná SearchOption hodnota.

path je neplatný, například odkaz na nenamapovanou jednotku.

path je název souboru.

Zadaná cesta, název souboru nebo kombinace překračuje maximální délku definovanou systémem.

Volající nemá požadované oprávnění.

Volající nemá požadované oprávnění.

Poznámky

searchPattern může být kombinací literálu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPatternznaků.

Specifikátor zástupných znaků Shody
* (hvězdička) Na této pozici není žádný nebo více znaků.
? (otazník) Přesně jeden znak v této pozici.

Jiné znaky než zástupný znak jsou literálové znaky. Například searchPattern řetězec "*t" vyhledá všechna jména končící path písmenem "t". Řetězec searchPattern "s*" vyhledá všechna jména začínající path písmenem "s".

searchPattern nesmí končit dvěma tečkami ("..") nebo obsahovat dvě tečky ("..") za nimi DirectorySeparatorChar nebo AltDirectorySeparatorChar, ani nesmí obsahovat neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars .

V parametru můžete zadat relativní nebo absolutní informace o cestě path . Informace o relativní cestě jsou interpretovány jako relativní vzhledem k aktuálnímu pracovnímu adresáři, který můžete určit pomocí GetCurrentDirectory metody . Názvy vrácených adresářů mají předponu s hodnotou, kterou jste zadali v parametru path . Pokud například v parametru path zadáte relativní cestu, vrácené názvy adresářů budou obsahovat relativní cestu.

Metody EnumerateDirectories a GetDirectories se liší následujícím způsobem: Při použití EnumerateDirectoriesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetDirectoriesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateDirectories může být efektivnější.

Vrácená kolekce není uložena do mezipaměti; každé volání GetEnumerator v kolekci zahájí nový výčet.

Platí pro

EnumerateDirectories(String, String, SearchOption)

Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs

Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.

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)

Parametry

path
String

Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.

searchPattern
String

Hledaný řetězec, který se má shodovat s názvy adresářů v path. Tento parametr může obsahovat kombinaci platných literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.

searchOption
SearchOption

Jedna z hodnot výčtu, která určuje, zda má operace hledání obsahovat pouze aktuální adresář nebo by měla zahrnovat všechny podadresáře. Výchozí hodnota je TopDirectoryOnly.

Návraty

Výčetná kolekce úplných jmen (včetně cest) adresářů v adresáři určeném nástrojem path a odpovídající zadanému vzoru hledání a možnosti hledání.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .

-nebo-

searchPattern neobsahuje platný vzor.

path je null.

-nebo-

searchPattern je null.

searchOption není platná SearchOption hodnota.

path je neplatný, například odkaz na nenamapovanou jednotku.

path je název souboru.

Zadaná cesta, název souboru nebo kombinace překračuje maximální délku definovanou systémem.

Volající nemá požadované oprávnění.

Volající nemá požadované oprávnění.

Příklady

Následující příklad vytvoří výčet adresářů v zadané cestě, které odpovídají zadanému vzoru hledání. Používá searchOption parametr k určení, že všechny podadresáře mají být zahrnuty do hledání.

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

Poznámky

searchPattern může být kombinací literálu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPatternznaků.

Specifikátor zástupných znaků Shody
* (hvězdička) Na této pozici není žádný nebo více znaků.
? (otazník) Přesně jeden znak v této pozici.

Jiné znaky než zástupný znak jsou literálové znaky. Například searchPattern řetězec "*t" vyhledá všechna jména končící path písmenem "t". Řetězec searchPattern "s*" vyhledá všechna jména začínající path písmenem "s".

searchPattern nesmí končit dvěma tečkami ("..") nebo obsahovat dvě tečky ("..") za nimi DirectorySeparatorChar nebo AltDirectorySeparatorChar, ani nesmí obsahovat neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars .

V parametru můžete zadat relativní nebo absolutní informace o cestě path . Informace o relativní cestě jsou interpretovány jako relativní vzhledem k aktuálnímu pracovnímu adresáři, který můžete určit pomocí GetCurrentDirectory metody . Názvy vrácených adresářů mají předponu s hodnotou, kterou jste zadali v parametru path . Pokud například v parametru path zadáte relativní cestu, vrácené názvy adresářů budou obsahovat relativní cestu.

Metody EnumerateDirectories a GetDirectories se liší následujícím způsobem: Při použití EnumerateDirectoriesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetDirectoriesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateDirectories může být efektivnější.

Vrácená kolekce není uložena do mezipaměti; každé volání GetEnumerator v kolekci zahájí nový výčet.

Platí pro