Compartilhar via


Directory.EnumerateDirectories Método

Definição

Retorna uma coleção enumerável de nomes completos de diretório que atendem ao critério especificado.

Sobrecargas

EnumerateDirectories(String)

Retorna uma coleção enumerável de nomes completos de diretório em um caminho especificado.

EnumerateDirectories(String, String)

Retorna uma coleção enumerável de nomes completos de diretório que correspondem a um padrão de pesquisa em um caminho especificado.

EnumerateDirectories(String, String, EnumerationOptions)

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

EnumerateDirectories(String, String, SearchOption)

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

EnumerateDirectories(String)

Origem:
Directory.cs
Origem:
Directory.cs
Origem:
Directory.cs

Retorna uma coleção enumerável de nomes completos de diretório em um 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 ser pesquisado. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.

Retornos

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

Exceções

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

path é null.

path é inválido, como referenciar uma unidade não mapeada.

path é um nome de arquivo.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

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

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

Exemplos

O exemplo a seguir enumera os diretórios de nível superior em um 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

Comentários

Você pode especificar informações de caminho relativas ou absolutas no path parâmetro . As informações de caminho relativo são interpretadas como relativas ao diretório de trabalho atual, que você pode determinar usando o GetCurrentDirectory método . Os nomes de diretório retornados são prefixados com o valor fornecido no path parâmetro . Por exemplo, se você fornecer um caminho relativo no path parâmetro , os nomes de diretório retornados conterão um caminho relativo.

Os EnumerateDirectories métodos e GetDirectories diferem da seguinte maneira: quando você usa EnumerateDirectories, você pode começar a enumerar a coleção de nomes antes que toda a coleção seja retornada; quando você usa GetDirectories, deve aguardar que toda a matriz de nomes seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateDirectories pode ser mais eficiente.

A coleção retornada não é armazenada em cache; cada chamada para o GetEnumerator na coleção iniciará uma nova enumeração.

Aplica-se a

EnumerateDirectories(String, String)

Origem:
Directory.cs
Origem:
Directory.cs
Origem:
Directory.cs

Retorna uma coleção enumerável de nomes completos de diretório que correspondem a um padrão de pesquisa em um 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 ser pesquisado. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.

searchPattern
String

A cadeia de caracteres de pesquisa para correspondência com os nomes dos diretórios em path. Esse parâmetro pode conter uma combinação de caracteres curinga (* e ?) e caminho de literal, mas não dá suporte a expressões regulares.

Retornos

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

Exceções

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

- ou -

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

path é null.

- ou -

searchPattern é null.

path é inválido, como referenciar uma unidade não mapeada.

path é um nome de arquivo.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

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

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

Exemplos

O exemplo a seguir enumera os diretórios de nível superior em um caminho especificado que corresponde 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

Comentários

searchPattern pode ser uma combinação de caracteres literais e curinga, mas não dá suporte a expressões regulares. Os especificadores curinga a seguir são permitidos em searchPattern.

Especificador curinga Corresponde a
* (asterisco) Zero ou mais caracteres nessa posição.
? (ponto de interrogação) Exatamente um caractere nessa posição.

Caracteres diferentes do curinga são caracteres literais. Por exemplo, a searchPattern cadeia de caracteres "*t" pesquisa todos os nomes ao path terminar com a letra "t". A searchPattern cadeia de caracteres "s*" pesquisa todos os nomes no path início com a letra "s".

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

Você pode especificar informações de caminho relativas ou absolutas no path parâmetro . As informações de caminho relativo são interpretadas como relativas ao diretório de trabalho atual, que você pode determinar usando o GetCurrentDirectory método . Os nomes de diretório retornados são prefixados com o valor fornecido no path parâmetro . Por exemplo, se você fornecer um caminho relativo no path parâmetro , os nomes de diretório retornados conterão um caminho relativo.

Os EnumerateDirectories métodos e GetDirectories diferem da seguinte maneira: quando você usa EnumerateDirectories, você pode começar a enumerar a coleção de nomes antes que toda a coleção seja retornada; quando você usa GetDirectories, deve aguardar que toda a matriz de nomes seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateDirectories pode ser mais eficiente.

A coleção retornada não é armazenada em cache; cada chamada para o GetEnumerator na coleção iniciará uma nova enumeração.

Aplica-se a

EnumerateDirectories(String, String, EnumerationOptions)

Origem:
Directory.cs
Origem:
Directory.cs
Origem:
Directory.cs

Retorna uma coleção enumerável de nomes completos de diretório que correspondem a um padrão de pesquisa em um 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 ser pesquisado. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.

searchPattern
String

A cadeia de caracteres de pesquisa para correspondência com os nomes dos diretórios em path. Esse parâmetro pode conter uma combinação de caracteres curinga (* e ?) e caminho de literal, mas não dá suporte a expressões regulares.

enumerationOptions
EnumerationOptions

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

Retornos

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

Exceções

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

- ou -

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

path ou searchPattern é null.

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

path é inválido, como referenciar uma unidade não mapeada.

path é um nome de arquivo.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

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

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

Comentários

searchPattern pode ser uma combinação de caracteres literais e curinga, mas não dá suporte a expressões regulares. Os especificadores curinga a seguir são permitidos em searchPattern.

Especificador curinga Corresponde a
* (asterisco) Zero ou mais caracteres nessa posição.
? (ponto de interrogação) Exatamente um caractere nessa posição.

Caracteres diferentes do curinga são caracteres literais. Por exemplo, a searchPattern cadeia de caracteres "*t" pesquisa todos os nomes ao path terminar com a letra "t". A searchPattern cadeia de caracteres "s*" pesquisa todos os nomes no path início com a letra "s".

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

Você pode especificar informações de caminho relativas ou absolutas no path parâmetro . As informações de caminho relativo são interpretadas como relativas ao diretório de trabalho atual, que você pode determinar usando o GetCurrentDirectory método . Os nomes de diretório retornados são prefixados com o valor fornecido no path parâmetro . Por exemplo, se você fornecer um caminho relativo no path parâmetro , os nomes de diretório retornados conterão um caminho relativo.

Os EnumerateDirectories métodos e GetDirectories diferem da seguinte maneira: quando você usa EnumerateDirectories, você pode começar a enumerar a coleção de nomes antes que toda a coleção seja retornada; quando você usa GetDirectories, deve aguardar que toda a matriz de nomes seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateDirectories pode ser mais eficiente.

A coleção retornada não é armazenada em cache; cada chamada para o GetEnumerator na coleção iniciará uma nova enumeração.

Aplica-se a

EnumerateDirectories(String, String, SearchOption)

Origem:
Directory.cs
Origem:
Directory.cs
Origem:
Directory.cs

Retorna uma coleção enumerável de nomes completos de diretório que correspondem a um padrão de pesquisa em um caminho especificado e, opcionalmente, pesquisa 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 ser pesquisado. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.

searchPattern
String

A cadeia de caracteres de pesquisa para correspondência com os nomes dos diretórios em path. Esse parâmetro pode conter uma combinação de caracteres curinga (* e ?) e caminho de literal, mas não dá suporte a expressões regulares.

searchOption
SearchOption

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

Retornos

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

Exceções

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

- ou -

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

path é null.

- ou -

searchPattern é null.

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

path é inválido, como referenciar uma unidade não mapeada.

path é um nome de arquivo.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

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

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

Exemplos

O exemplo a seguir enumera diretórios em um caminho especificado que correspondem a um padrão de pesquisa especificado. Ele usa 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

Comentários

searchPattern pode ser uma combinação de caracteres literais e curinga, mas não dá suporte a expressões regulares. Os especificadores curinga a seguir são permitidos em searchPattern.

Especificador curinga Corresponde a
* (asterisco) Zero ou mais caracteres nessa posição.
? (ponto de interrogação) Exatamente um caractere nessa posição.

Caracteres diferentes do curinga são caracteres literais. Por exemplo, a cadeia searchPattern de caracteres "*t" pesquisa todos os nomes ao path terminar com a letra "t". A searchPattern cadeia de caracteres "s*" procura todos os nomes no path início com a letra "s".

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

Você pode especificar informações de caminho relativo ou absoluto no path parâmetro . As informações de caminho relativo são interpretadas como relativas ao diretório de trabalho atual, que você pode determinar usando o GetCurrentDirectory método . Os nomes de diretório retornados são prefixados com o valor fornecido no path parâmetro . Por exemplo, se você fornecer um caminho relativo no path parâmetro , os nomes de diretório retornados conterão um caminho relativo.

Os EnumerateDirectories métodos e GetDirectories diferem da seguinte maneira: quando você usa EnumerateDirectories, você pode começar a enumerar a coleção de nomes antes que toda a coleção seja retornada; quando você usa GetDirectories, deve aguardar que toda a matriz de nomes seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateDirectories pode ser mais eficiente.

A coleção retornada não é armazenada em cache; cada chamada para o GetEnumerator na coleção iniciará uma nova enumeração.

Aplica-se a