DirectoryInfo.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 informação do diretório no diretório atual.
Sobrecargas
| Name | Description |
|---|---|
| EnumerateDirectories(String, SearchOption) |
Devolve uma coleção enumerável de informação de diretório que corresponde a um padrão de pesquisa especificado e a uma opção de subdiretório de pesquisa. |
| EnumerateDirectories(String, EnumerationOptions) |
Devolve uma coleção enumerável de informação do diretório que corresponde ao padrão de pesquisa especificado e às opções de enumeração. |
| EnumerateDirectories() |
Devolve uma coleção enumerável de informação do diretório no diretório atual. |
| EnumerateDirectories(String) |
Devolve uma coleção enumerável de informação de diretório que corresponde a um padrão de pesquisa especificado. |
EnumerateDirectories(String, SearchOption)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Devolve uma coleção enumerável de informação de diretório que corresponde a um padrão de pesquisa especificado e a uma opção de subdiretório de pesquisa.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption);
member this.EnumerateDirectories : string * System.IO.SearchOption -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String, searchOption As SearchOption) As IEnumerable(Of DirectoryInfo)
Parâmetros
- searchPattern
- String
A cadeia de pesquisa para comparar com os nomes dos diretórios. 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 especifica se a operação de pesquisa deve incluir apenas o diretório atual ou todos os subdiretórios. O valor predefinido é TopDirectoryOnly.
Devoluções
Uma coleção enumerável de diretórios que corresponde searchPattern a e searchOption.
Exceções
searchPattern é null.
searchOption não é um valor válido SearchOption .
O caminho encapsulado no DirectoryInfo objeto é inválido (por exemplo, está num disco não mapeado).
O interlocutor não tem a permissão necessária.
Exemplos
O exemplo seguinte utiliza este método e o EnumerateFiles método para enumerar os ficheiros e diretórios dentro do diretório inicial e mostrar o nome e o tamanho de quaisquer ficheiros acima de 10 MB.
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// Set a variable to the My Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
DirectoryInfo diTop = new DirectoryInfo(docPath);
try
{
foreach (var fi in diTop.EnumerateFiles())
{
try
{
// Display each file over 10 MB.
if (fi.Length > 10000000)
{
Console.WriteLine($"{fi.FullName}\t\t{fi.Length:N0}");
}
}
catch (UnauthorizedAccessException unAuthTop)
{
Console.WriteLine($"{unAuthTop.Message}");
}
}
foreach (var di in diTop.EnumerateDirectories("*"))
{
try
{
foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
{
try
{
// Display each file over 10 MB.
if (fi.Length > 10000000)
{
Console.WriteLine($"{fi.FullName}\t\t{fi.Length:N0}");
}
}
catch (UnauthorizedAccessException unAuthFile)
{
Console.WriteLine($"unAuthFile: {unAuthFile.Message}");
}
}
}
catch (UnauthorizedAccessException unAuthSubDir)
{
Console.WriteLine($"unAuthSubDir: {unAuthSubDir.Message}");
}
}
}
catch (DirectoryNotFoundException dirNotFound)
{
Console.WriteLine($"{dirNotFound.Message}");
}
catch (UnauthorizedAccessException unAuthDir)
{
Console.WriteLine($"unAuthDir: {unAuthDir.Message}");
}
catch (PathTooLongException longPath)
{
Console.WriteLine($"{longPath.Message}");
}
}
}
open System
open System.IO
// Set a variable to the My Documents path.
let docPath = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments
let diTop = DirectoryInfo docPath
try
for fi in diTop.EnumerateFiles() do
try
// Display each file over 10 MB.
if fi.Length > 10000000 then
printfn $"{fi.FullName}\t\t{fi.Length:N0}"
with :? UnauthorizedAccessException as unAuthTop ->
printfn $"{unAuthTop.Message}"
for di in diTop.EnumerateDirectories "*" do
try
for fi in di.EnumerateFiles("*", SearchOption.AllDirectories) do
try
// Display each file over 10 MB.
if fi.Length > 10000000 then
printfn $"{fi.FullName}\t\t{fi.Length:N0}"
with :? UnauthorizedAccessException as unAuthFile ->
printfn $"unAuthFile: {unAuthFile.Message}"
with :? UnauthorizedAccessException as unAuthSubDir ->
printfn $"unAuthSubDir: {unAuthSubDir.Message}"
with
| :? DirectoryNotFoundException as dirNotFound ->
Console.WriteLine($"{dirNotFound.Message}")
| :? UnauthorizedAccessException as unAuthDir ->
printfn $"unAuthDir: {unAuthDir.Message}"
| :? PathTooLongException as longPath ->
printfn $"{longPath.Message}"
Imports System.IO
Class Program
Public Shared Sub Main(ByVal args As String())
Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim diTop As New DirectoryInfo(dirPath)
Try
For Each fi In diTop.EnumerateFiles()
Try
' Display each file over 10 MB;
If fi.Length > 10000000 Then
Console.WriteLine("{0}" & vbTab & vbTab & "{1}", fi.FullName, fi.Length.ToString("N0"))
End If
Catch unAuthTop As UnauthorizedAccessException
Console.WriteLine($"{unAuthTop.Message}")
End Try
Next
For Each di In diTop.EnumerateDirectories("*")
Try
For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
Try
' // Display each file over 10 MB;
If fi.Length > 10000000 Then
Console.WriteLine("{0}" & vbTab &
vbTab & "{1}", fi.FullName, fi.Length.ToString("N0"))
End If
Catch unAuthFile As UnauthorizedAccessException
Console.WriteLine($"unAuthFile: {unAuthFile.Message}")
End Try
Next
Catch unAuthSubDir As UnauthorizedAccessException
Console.WriteLine($"unAuthSubDir: {unAuthSubDir.Message}")
End Try
Next
Catch dirNotFound As DirectoryNotFoundException
Console.WriteLine($"{dirNotFound.Message}")
Catch unAuthDir As UnauthorizedAccessException
Console.WriteLine($"unAuthDir: {unAuthDir.Message}")
Catch longPath As PathTooLongException
Console.WriteLine($"{longPath.Message}")
End Try
End Sub
End Class
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) | Zero ou um personagem nessa posição. |
Personagens que não sejam o coringa são personagens literais. Por exemplo, a cadeia "*t" procura todos os nomes que terminam com a letra "t". ". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".
Os EnumerateDirectories métodos e GetDirectories diferem da seguinte forma:
Quando usas EnumerateDirectories, podes começar a enumerar a coleção de DirectoryInfo objetos antes de toda a coleção ser devolvida.
Quando usa GetDirectories, tem de esperar que todo o array de DirectoryInfo objetos seja devolvido antes de poder aceder ao array.
Por isso, quando trabalha com muitos ficheiros e diretórios, EnumerateDirectories pode ser mais eficiente.
Este método preprepreenche os valores das seguintes DirectoryInfo propriedades:
A coleção devolvida não é armazenada em cache; Cada chamada ao GetEnumerator método na coleção iniciará uma nova enumeração.
Aplica-se a
EnumerateDirectories(String, EnumerationOptions)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Devolve uma coleção enumerável de informação do diretório que corresponde ao padrão de pesquisa especificado e às opções de enumeração.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.EnumerateDirectories : string * System.IO.EnumerationOptions -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of DirectoryInfo)
Parâmetros
- searchPattern
- String
A cadeia de pesquisa para comparar com os nomes dos diretórios. 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 de diretórios que corresponde searchPattern a e enumerationOptions.
Exceções
searchPattern é null.
O caminho encapsulado no DirectoryInfo objeto é inválido (por exemplo, está num disco não mapeado).
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) | Zero ou um personagem nessa posição. |
Personagens que não sejam o coringa são personagens literais. Por exemplo, a cadeia "*t" procura todos os nomes que terminam com a letra "t". ". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".
Os EnumerateDirectories métodos e GetDirectories diferem da seguinte forma:
Quando usas EnumerateDirectories, podes começar a enumerar a coleção de DirectoryInfo objetos antes de toda a coleção ser devolvida.
Quando usa GetDirectories, tem de esperar que todo o array de DirectoryInfo objetos seja devolvido antes de poder aceder ao array.
Por isso, quando trabalha com muitos ficheiros e diretórios, EnumerateDirectories pode ser mais eficiente.
Este método preprepreenche os valores das seguintes DirectoryInfo propriedades:
A coleção devolvida não é armazenada em cache; Cada chamada ao GetEnumerator método na coleção iniciará uma nova enumeração.
Aplica-se a
EnumerateDirectories()
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Devolve uma coleção enumerável de informação do diretório no diretório atual.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories();
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories();
member this.EnumerateDirectories : unit -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories () As IEnumerable(Of DirectoryInfo)
Devoluções
Uma coleção enumerável de diretórios no diretório atual.
Exceções
O caminho encapsulado no DirectoryInfo objeto é inválido (por exemplo, está num disco não mapeado).
O interlocutor não tem a permissão necessária.
Exemplos
O exemplo seguinte enumera os subdiretórios sob o diretório C:\Program Files e utiliza uma consulta LINQ para devolver os nomes de todos os diretórios criados antes de 2009, verificando o valor da CreationTimeUtc propriedade.
Se só precisares dos nomes dos subdiretórios, usa a classe estática Directory para melhor desempenho. Para obter um exemplo, consulte o EnumerateDirectories(String) método.
using System;
using System.IO;
namespace EnumDir
{
class Program
{
static void Main(string[] args)
{
// Set a variable to the Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
DirectoryInfo dirPrograms = new DirectoryInfo(docPath);
DateTime StartOf2009 = new DateTime(2009, 01, 01);
var dirs = from dir in dirPrograms.EnumerateDirectories()
where dir.CreationTimeUtc > StartOf2009
select new
{
ProgDir = dir,
};
foreach (var di in dirs)
{
Console.WriteLine($"{di.ProgDir.Name}");
}
}
}
}
// </Snippet1>
module program
// <Snippet1>
open System
open System.IO
// Set a variable to the Documents path.
let docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
let dirPrograms = DirectoryInfo docPath
let startOf2009 = DateTime(2009, 01, 01)
let dirs =
query {
for dir in dirPrograms.EnumerateDirectories() do
where (dir.CreationTimeUtc > startOf2009)
select {| ProgDir = dir |}
}
for di in dirs do
printfn $"{di.ProgDir.Name}"
// </Snippet1>
Imports System.IO
Module Module1
Sub Main()
Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim dirPrograms As New DirectoryInfo(dirPath)
Dim StartOf2009 As New DateTime(2009, 1, 1)
Dim dirs = From dir In dirPrograms.EnumerateDirectories()
Where dir.CreationTimeUtc > StartOf2009
For Each di As DirectoryInfo In dirs
Console.WriteLine("{0}", di.Name)
Next
End Sub
End Module
Observações
Os EnumerateDirectories métodos e GetDirectories diferem da seguinte forma:
Quando usas EnumerateDirectories, podes começar a enumerar a coleção de DirectoryInfo objetos antes de toda a coleção ser devolvida.
Quando usa GetDirectories, tem de esperar que todo o array de DirectoryInfo objetos seja devolvido antes de poder aceder ao array.
Por isso, quando trabalha com muitos ficheiros e diretórios, EnumerateDirectories pode ser mais eficiente.
Este método preprepreenche os valores das seguintes DirectoryInfo propriedades:
A coleção devolvida não é armazenada em cache; Cada chamada ao GetEnumerator método na coleção iniciará uma nova enumeração.
Aplica-se a
EnumerateDirectories(String)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Devolve uma coleção enumerável de informação de diretório que corresponde a um padrão de pesquisa especificado.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories(string searchPattern);
member this.EnumerateDirectories : string -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String) As IEnumerable(Of DirectoryInfo)
Parâmetros
- searchPattern
- String
A cadeia de pesquisa para comparar com os nomes dos diretórios. 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 de diretórios que corresponde searchPatterna .
Exceções
searchPattern é null.
O caminho encapsulado no DirectoryInfo objeto é inválido (por exemplo, está num disco não mapeado).
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) | Zero ou um personagem nessa posição. |
Personagens que não sejam o coringa são personagens literais. Por exemplo, a cadeia "*t" procura todos os nomes que terminam com a letra "t". ". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".
Os EnumerateDirectories métodos e GetDirectories diferem da seguinte forma:
Quando usas EnumerateDirectories, podes começar a enumerar a coleção de DirectoryInfo objetos antes de toda a coleção ser devolvida.
Quando usa GetDirectories, tem de esperar que todo o array de DirectoryInfo objetos seja devolvido antes de poder aceder ao array.
Por isso, quando trabalha com muitos ficheiros e diretórios, EnumerateDirectories pode ser mais eficiente.
Este método preprepreenche os valores das seguintes DirectoryInfo propriedades:
A coleção devolvida não é armazenada em cache; Cada chamada ao GetEnumerator método na coleção iniciará uma nova enumeração.