Directory.EnumerateDirectories Método

Definição

Devolve uma coleção enumerável de nomes completos de diretórios que cumprem critérios especificados.

Sobrecargas

Name Description
EnumerateDirectories(String)

Devolve uma coleção enumerável de nomes completos de diretórios num caminho especificado.

EnumerateDirectories(String, String)

Devolve uma coleção enumerável de nomes completos de diretórios que correspondem a um padrão de pesquisa num caminho especificado.

EnumerateDirectories(String, String, EnumerationOptions)

Devolve uma coleção enumerável dos nomes completos dos diretórios que correspondem a um padrão de pesquisa num caminho especificado e, opcionalmente, pesquisa subdiretórios.

EnumerateDirectories(String, String, SearchOption)

Devolve uma coleção enumerável de nomes completos de diretórios que correspondem a um padrão de pesquisa num caminho especificado e, opcionalmente, pesquisa em subdiretórios.

EnumerateDirectories(String)

Devolve uma coleção enumerável de nomes completos de diretórios num caminho especificado.

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)

Parâmetros

path
String

O caminho relativo ou absoluto para o diretório a pesquisar. Esta cadeia não é sensível a maiúsculas minúsculas.

Devoluções

Uma coleção enumerável dos nomes completos (incluindo caminhos) para os diretórios no diretório especificado por path.

Exceções

.NET Framework e .NET Core versões anteriores à 2.1: path é uma string de comprimento zero, contém apenas espaço em branco ou contém caracteres inválidos. Pode consultar caracteres inválidos usando o GetInvalidPathChars() método.

path é null.

path é inválido, como referir-se a um disco não mapeado.

path é um nome de ficheiro.

O caminho, nome do ficheiro ou combinação especificados excedem o comprimento máximo definido pelo sistema.

O interlocutor não tem a permissão necessária.

O interlocutor não tem a permissão necessária.

Exemplos

O exemplo seguinte enumera os diretórios de topo num caminho especificado.

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

Observações

Pode especificar informação relativa ou absoluta do caminho no path parâmetro. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual, que pode determinar usando o GetCurrentDirectory método. Os nomes dos diretórios devolvidos são prefixados pelo valor que forneceu no path parâmetro. Por exemplo, se fornecer um caminho relativo no path parâmetro, os nomes dos diretórios devolvidos conterão um caminho relativo.

Os EnumerateDirectories métodos e GetDirectories diferem da seguinte forma: Quando usa EnumerateDirectories, pode começar a enumerar a coleção de nomes antes de a coleção completa ser devolvida; quando usar GetDirectories, deve esperar que todo o array de nomes seja devolvido antes de poder aceder ao array. Por isso, quando trabalha com muitos ficheiros e diretórios, EnumerateDirectories pode ser mais eficiente.

A coleção devolvida não é armazenada em cache; Cada chamada à GetEnumerator coleção iniciará uma nova enumeração.

Aplica-se a

EnumerateDirectories(String, String)

Devolve uma coleção enumerável de nomes completos de diretórios que correspondem a um padrão de pesquisa num caminho especificado.

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)

Parâmetros

path
String

O caminho relativo ou absoluto para o diretório a pesquisar. Esta cadeia não é sensível a maiúsculas minúsculas.

searchPattern
String

A cadeia de pesquisa para comparar com os nomes dos diretórios em path. Este parâmetro pode conter uma combinação de caracteres válidos de path literais e wildcard (* e ?), mas não suporta expressões regulares.

Devoluções

Uma coleção enumerável dos nomes completos (incluindo caminhos) dos diretórios no diretório especificados por path e que correspondem ao padrão de pesquisa especificado.

Exceções

.NET Framework e .NET Core versões anteriores à 2.1: path é uma string de comprimento zero, contém apenas espaço em branco ou contém caracteres inválidos. Podes consultar caracteres inválidos com o GetInvalidPathChars() método.

-ou-

searchPattern não contém um padrão válido.

path é null.

-ou-

searchPattern é null.

path é inválido, como referir-se a um disco não mapeado.

path é um nome de ficheiro.

O caminho, nome do ficheiro ou combinação especificados excedem o comprimento máximo definido pelo sistema.

O interlocutor não tem a permissão necessária.

O interlocutor não tem a permissão necessária.

Exemplos

O exemplo seguinte enumera os diretórios de topo num caminho especificado que correspondem a um padrão de pesquisa especificado.

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

Observações

searchPattern pode ser uma combinação de caracteres literais e coringa, mas não suporta expressões regulares. Os seguintes indicadores de wildcard são permitidos em searchPattern.

Especificador de coringa Resultados correspondentes
* (asterisco) Zero ou mais personagens nessa posição.
? (ponto de interrogação) Exatamente uma personagem nessa posição.

Personagens que não sejam o coringa são personagens literais. Por exemplo, a searchPattern cadeia "*t" procura todos os nomes que path terminam com a letra "t". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".

searchPattern não pode terminar em dois períodos ("..") nem conter dois períodos ("..") seguidos de DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Pode consultar caracteres inválidos usando o GetInvalidPathChars método.

Pode especificar informação relativa ou absoluta do caminho no path parâmetro. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual, que pode determinar usando o GetCurrentDirectory método. Os nomes dos diretórios devolvidos são prefixados pelo valor que forneceu no path parâmetro. Por exemplo, se fornecer um caminho relativo no path parâmetro, os nomes dos diretórios devolvidos conterão um caminho relativo.

Os EnumerateDirectories métodos e GetDirectories diferem da seguinte forma: Quando usa EnumerateDirectories, pode começar a enumerar a coleção de nomes antes de a coleção completa ser devolvida; quando usar GetDirectories, deve esperar que todo o array de nomes seja devolvido antes de poder aceder ao array. Por isso, quando trabalha com muitos ficheiros e diretórios, EnumerateDirectories pode ser mais eficiente.

A coleção devolvida não é armazenada em cache; Cada chamada à GetEnumerator coleção iniciará uma nova enumeração.

Aplica-se a

EnumerateDirectories(String, String, EnumerationOptions)

Devolve uma coleção enumerável dos nomes completos dos diretórios que correspondem a um padrão de pesquisa num caminho especificado e, opcionalmente, pesquisa subdiretórios.

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)

Parâmetros

path
String

O caminho relativo ou absoluto para o diretório a pesquisar. Esta cadeia não é sensível a maiúsculas minúsculas.

searchPattern
String

A cadeia de pesquisa para comparar com os nomes dos diretórios em path. Este parâmetro pode conter uma combinação de caracteres válidos de path literais e wildcard (* e ?), mas não suporta expressões regulares.

enumerationOptions
EnumerationOptions

Um objeto que descreve a configuração de pesquisa e enumeração a utilizar.

Devoluções

Uma coleção enumerável dos nomes completos (incluindo caminhos) dos diretórios no diretório especificados por path e que correspondem ao padrão de pesquisa especificado e às opções de enumeração.

Exceções

.NET Framework e .NET Core versões anteriores à 2.1: path é uma string de comprimento zero, contém apenas espaço em branco ou contém caracteres inválidos. Pode consultar caracteres inválidos usando o GetInvalidPathChars() método.

-ou-

searchPattern não contém um padrão válido.

path ou searchPattern é null.

path é inválido, como referir-se a um disco não mapeado.

path é um nome de ficheiro.

O caminho, nome do ficheiro ou combinação especificados excedem o comprimento máximo definido pelo sistema.

O interlocutor não tem a permissão necessária.

O interlocutor não tem a permissão necessária.

Observações

searchPattern pode ser uma combinação de caracteres literais e coringa, mas não suporta expressões regulares. Os seguintes indicadores de wildcard são permitidos em searchPattern.

Especificador de coringa Resultados correspondentes
* (asterisco) Zero ou mais personagens nessa posição.
? (ponto de interrogação) Exatamente uma personagem nessa posição.

Personagens que não sejam o coringa são personagens literais. Por exemplo, a searchPattern cadeia "*t" procura todos os nomes que path terminam com a letra "t". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".

searchPattern não pode terminar em dois períodos ("..") nem conter dois períodos ("..") seguidos de DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Pode consultar caracteres inválidos usando o GetInvalidPathChars método.

Pode especificar informação relativa ou absoluta do caminho no path parâmetro. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual, que pode determinar usando o GetCurrentDirectory método. Os nomes dos diretórios devolvidos são prefixados pelo valor que forneceu no path parâmetro. Por exemplo, se fornecer um caminho relativo no path parâmetro, os nomes dos diretórios devolvidos conterão um caminho relativo.

Os EnumerateDirectories métodos e GetDirectories diferem da seguinte forma: Quando usa EnumerateDirectories, pode começar a enumerar a coleção de nomes antes de a coleção completa ser devolvida; quando usar GetDirectories, deve esperar que todo o array de nomes seja devolvido antes de poder aceder ao array. Por isso, quando trabalha com muitos ficheiros e diretórios, EnumerateDirectories pode ser mais eficiente.

A coleção devolvida não é armazenada em cache; Cada chamada à GetEnumerator coleção iniciará uma nova enumeração.

Aplica-se a

EnumerateDirectories(String, String, SearchOption)

Devolve uma coleção enumerável de nomes completos de diretórios que correspondem a um padrão de pesquisa num caminho especificado e, opcionalmente, pesquisa em subdiretórios.

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)

Parâmetros

path
String

O caminho relativo ou absoluto para o diretório a pesquisar. Esta cadeia não é sensível a maiúsculas minúsculas.

searchPattern
String

A cadeia de pesquisa para comparar com os nomes dos diretórios em path. Este parâmetro pode conter uma combinação de caracteres válidos de path literais e wildcard (* e ?), mas não suporta expressões regulares.

searchOption
SearchOption

Um dos valores de enumeração que especifica se a operação de pesquisa deve incluir apenas o diretório atual ou deve incluir todos os subdiretórios. O valor predefinido é TopDirectoryOnly.

Devoluções

Uma coleção enumerável dos nomes completos (incluindo caminhos) dos diretórios no diretório especificados por path e que correspondem ao padrão de pesquisa e à opção de pesquisa especificados.

Exceções

.NET Framework e .NET Core versões anteriores à 2.1: path é uma string de comprimento zero, contém apenas espaço em branco ou contém caracteres inválidos. Pode consultar caracteres inválidos usando o GetInvalidPathChars() método.

-ou-

searchPattern não contém um padrão válido.

path é null.

-ou-

searchPattern é null.

searchOption não é um valor válido SearchOption .

path é inválido, como referir-se a um disco não mapeado.

path é um nome de ficheiro.

O caminho, nome do ficheiro ou combinação especificados excedem o comprimento máximo definido pelo sistema.

O interlocutor não tem a permissão necessária.

O interlocutor não tem a permissão necessária.

Exemplos

O exemplo seguinte enumera diretórios num caminho especificado que correspondem a um padrão de pesquisa especificado. Utiliza o searchOption parâmetro para especificar que todos os subdiretórios devem ser incluídos na pesquisa.

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

Observações

searchPattern pode ser uma combinação de caracteres literais e coringa, mas não suporta expressões regulares. Os seguintes indicadores de wildcard são permitidos em searchPattern.

Especificador de coringa Resultados correspondentes
* (asterisco) Zero ou mais personagens nessa posição.
? (ponto de interrogação) Exatamente uma personagem nessa posição.

Personagens que não sejam o coringa são personagens literais. Por exemplo, a searchPattern cadeia "*t" procura todos os nomes que path terminam com a letra "t". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".

searchPattern não pode terminar em dois períodos ("..") nem conter dois períodos ("..") seguidos de DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Pode consultar caracteres inválidos usando o GetInvalidPathChars método.

Pode especificar informação relativa ou absoluta do caminho no path parâmetro. A informação relativa do caminho é interpretada como relativa ao diretório de trabalho atual, que pode determinar usando o GetCurrentDirectory método. Os nomes dos diretórios devolvidos são prefixados pelo valor que forneceu no path parâmetro. Por exemplo, se fornecer um caminho relativo no path parâmetro, os nomes dos diretórios devolvidos conterão um caminho relativo.

Os EnumerateDirectories métodos e GetDirectories diferem da seguinte forma: Quando usa EnumerateDirectories, pode começar a enumerar a coleção de nomes antes de a coleção completa ser devolvida; quando usar GetDirectories, deve esperar que todo o array de nomes seja devolvido antes de poder aceder ao array. Por isso, quando trabalha com muitos ficheiros e diretórios, EnumerateDirectories pode ser mais eficiente.

A coleção devolvida não é armazenada em cache; Cada chamada à GetEnumerator coleção iniciará uma nova enumeração.

Aplica-se a