Ler em inglês

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<string> EnumerateDirectories (string path);

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);
        }
    }
}

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<string> EnumerateDirectories (string path, string searchPattern);

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);
        }
    }
}

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<string> EnumerateDirectories (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);

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<string> EnumerateDirectories (string path, string searchPattern, System.IO.SearchOption searchOption);

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);
        }
    }
}

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