Directory.EnumerateDirectories Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 é 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.
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.