Directory.EnumerateDirectories Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
é 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.
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.