DirectoryInfo.EnumerateFiles 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 informações de arquivo no diretório atual.
Sobrecargas
EnumerateFiles() |
Retorna uma coleção enumerável de informações de arquivo no diretório atual. |
EnumerateFiles(String) |
Retorna uma coleção enumerável de informações de arquivo que correspondem a um padrão de pesquisa. |
EnumerateFiles(String, EnumerationOptions) |
Retorna uma coleção enumerável de informações de arquivo que correspondem às opções especificadas de padrão de pesquisa e enumeração. |
EnumerateFiles(String, SearchOption) |
Retorna uma coleção enumerável de informações de arquivo que correspondem a um padrão de pesquisa especificado e uma opção de subdiretório de pesquisa. |
EnumerateFiles()
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma coleção enumerável de informações de arquivo no diretório atual.
public:
System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles();
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles ();
member this.EnumerateFiles : unit -> seq<System.IO.FileInfo>
Public Function EnumerateFiles () As IEnumerable(Of FileInfo)
Retornos
Uma coleção enumerável dos arquivos no diretório atual.
Exceções
O caminho encapsulado no objeto DirectoryInfo é inválido (por exemplo, está em uma unidade não mapeada).
O chamador não tem a permissão necessária.
Exemplos
O exemplo a seguir enumera os arquivos em um diretório especificado e usa uma consulta LINQ para retornar os nomes de todos os arquivos que foram criados antes de 2009 verificando o valor da CreationTimeUtc propriedade.
Se você precisar apenas dos nomes dos arquivos, use a classe estática Directory para melhorar o desempenho. Para obter um exemplo, consulte o Directory.EnumerateFiles(String) método .
// Create a DirectoryInfo of the directory of the files to enumerate.
DirectoryInfo DirInfo = new DirectoryInfo(@"\\archives1\library\");
DateTime StartOf2009 = new DateTime(2009, 01, 01);
// LINQ query for all files created before 2009.
var files = from f in DirInfo.EnumerateFiles()
where f.CreationTimeUtc < StartOf2009
select f;
// Show results.
foreach (var f in files)
{
Console.WriteLine("{0}", f.Name);
}
// Create a DirectoryInfo of the directory of the files to enumerate.
let dirInfo = DirectoryInfo @"\archives1\library\"
let startOf2009 = DateTime(2009, 01, 01)
// LINQ query for all files created before 2009.
let files =
query {
for f in dirInfo.EnumerateFiles() do
where (f.CreationTime < startOf2009)
select f
}
// Show results.
for f in files do
printfn $"{f.Name}"
' Create a DirectoryInfo of the directory of the files to enumerate.
Dim DirInfo As New DirectoryInfo("\\archives1\library\")
Dim StartOf2009 As New DateTime(2009, 1, 1)
' LINQ query for all files created before 2009.
Dim files = From f In DirInfo.EnumerateFiles()
Where f.CreationTimeUtc < StartOf2009
' Show results.
For Each f As FileInfo In files
Console.WriteLine("{0}", f.Name)
Next
O exemplo a seguir mostra como enumerar arquivos em um diretório usando diferentes opções de pesquisa. O exemplo pressupõe um diretório que tem arquivos chamados log1.txt, log2.txt, test1.txt, test2.txt, test3.txt e um subdiretório que tem um arquivo chamado SubFile.txt.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.EnumerateFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.EnumerateFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.EnumerateFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
{
Console.WriteLine(fi.Name);
}
}
}
}
/*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*/
open System.IO
let di = DirectoryInfo @"C:\ExampleDir"
printfn "No search pattern returns:"
for fi in di.EnumerateFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.EnumerateFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.EnumerateFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.EnumerateFiles("*", SearchOption.AllDirectories) do
printfn $"{fi.Name}"
(*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO
Module Module1
Sub Main()
Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
Console.WriteLine("No search pattern returns:")
For Each fi In di.EnumerateFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.EnumerateFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.EnumerateFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
Console.WriteLine(fi.Name)
Next
End Sub
End Module
' This code produces output similar to the following:
' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' Search pattern *2* returns:
' log2.txt
' test2.txt
' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt
' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .
Comentários
Os EnumerateFiles métodos e GetFiles diferem da seguinte maneira:
Ao usar EnumerateFiles, você pode começar a enumerar a coleção de FileInfo objetos antes que toda a coleção seja retornada.
Ao usar GetFiles, você deve aguardar que toda a matriz de FileInfo objetos seja retornada antes de poder acessar a matriz.
Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.
Esse método preenche previamente os valores das seguintes FileInfo propriedades:
A coleção retornada não é armazenada em cache; cada chamada para o GetEnumerator método na coleção iniciará uma nova enumeração.
Aplica-se a
EnumerateFiles(String)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma coleção enumerável de informações de arquivo que correspondem a um padrão de pesquisa.
public:
System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern);
member this.EnumerateFiles : string -> seq<System.IO.FileInfo>
Public Function EnumerateFiles (searchPattern As String) As IEnumerable(Of FileInfo)
Parâmetros
- searchPattern
- String
A cadeia de caracteres de pesquisa para correspondência com os nomes dos arquivos. 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 arquivos que corresponde a searchPattern
.
Exceções
searchPattern
é null
.
O caminho encapsulado no objeto DirectoryInfo é inválido (por exemplo, está em uma unidade não mapeada).
O chamador não tem a permissão necessária.
Exemplos
O exemplo a seguir mostra como enumerar arquivos em um diretório usando diferentes opções de pesquisa. O exemplo pressupõe um diretório que tem arquivos chamados log1.txt, log2.txt, test1.txt, test2.txt, test3.txt e um subdiretório que tem um arquivo chamado SubFile.txt.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.EnumerateFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.EnumerateFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.EnumerateFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
{
Console.WriteLine(fi.Name);
}
}
}
}
/*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*/
open System.IO
let di = DirectoryInfo @"C:\ExampleDir"
printfn "No search pattern returns:"
for fi in di.EnumerateFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.EnumerateFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.EnumerateFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.EnumerateFiles("*", SearchOption.AllDirectories) do
printfn $"{fi.Name}"
(*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO
Module Module1
Sub Main()
Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
Console.WriteLine("No search pattern returns:")
For Each fi In di.EnumerateFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.EnumerateFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.EnumerateFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
Console.WriteLine(fi.Name)
Next
End Sub
End Module
' This code produces output similar to the following:
' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' Search pattern *2* returns:
' log2.txt
' test2.txt
' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt
' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .
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) | Zero ou um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a cadeia de caracteres "*t" pesquisa todos os nomes ao terminar com a letra "t". ". A searchPattern
cadeia de caracteres "s*" procura todos os nomes no path
início com a letra "s".
Os EnumerateFiles métodos e GetFiles diferem da seguinte maneira:
Ao usar EnumerateFiles, você pode começar a enumerar a coleção de FileInfo objetos antes que toda a coleção seja retornada.
Ao usar GetFiles, você deve aguardar que toda a matriz de FileInfo objetos seja retornada antes de poder acessar a matriz.
Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.
Esse método preenche previamente os valores das seguintes FileInfo propriedades:
A coleção retornada não é armazenada em cache; cada chamada para o GetEnumerator método na coleção iniciará uma nova enumeração.
Aplica-se a
EnumerateFiles(String, EnumerationOptions)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma coleção enumerável de informações de arquivo que correspondem às opções especificadas de padrão de pesquisa e enumeração.
public:
System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.EnumerateFiles : string * System.IO.EnumerationOptions -> seq<System.IO.FileInfo>
Public Function EnumerateFiles (searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of FileInfo)
Parâmetros
- searchPattern
- String
A cadeia de caracteres de pesquisa para correspondência com os nomes dos arquivos. 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 arquivos que corresponde a searchPattern
e enumerationOptions
.
Exceções
searchPattern
é null
.
O caminho encapsulado no objeto DirectoryInfo é inválido (por exemplo, está em uma unidade não mapeada).
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) | Zero ou um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a cadeia de caracteres "*t" pesquisa todos os nomes ao terminar com a letra "t". ". A searchPattern
cadeia de caracteres "s*" procura todos os nomes no path
início com a letra "s".
Os EnumerateFiles métodos e GetFiles diferem da seguinte maneira:
Ao usar EnumerateFiles, você pode começar a enumerar a coleção de FileInfo objetos antes que toda a coleção seja retornada.
Ao usar GetFiles, você deve aguardar que toda a matriz de FileInfo objetos seja retornada antes de poder acessar a matriz.
Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.
Esse método preenche previamente os valores das seguintes FileInfo propriedades:
A coleção retornada não é armazenada em cache; cada chamada para o GetEnumerator método na coleção iniciará uma nova enumeração.
Aplica-se a
EnumerateFiles(String, SearchOption)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma coleção enumerável de informações de arquivo que correspondem a um padrão de pesquisa especificado e uma opção de subdiretório de pesquisa.
public:
System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern, System.IO.SearchOption searchOption);
member this.EnumerateFiles : string * System.IO.SearchOption -> seq<System.IO.FileInfo>
Public Function EnumerateFiles (searchPattern As String, searchOption As SearchOption) As IEnumerable(Of FileInfo)
Parâmetros
- searchPattern
- String
A cadeia de caracteres de pesquisa para correspondência com os nomes dos arquivos. 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 arquivos que corresponde a searchPattern
e searchOption
.
Exceções
searchPattern
é null
.
searchOption
não é um valor SearchOption válido.
O caminho encapsulado no objeto DirectoryInfo é inválido (por exemplo, está em uma unidade não mapeada).
O chamador não tem a permissão necessária.
Exemplos
O exemplo a seguir mostra como enumerar arquivos em um diretório usando diferentes opções de pesquisa. O exemplo pressupõe um diretório que tem arquivos chamados log1.txt, log2.txt, test1.txt, test2.txt, test3.txt e um subdiretório que tem um arquivo chamado SubFile.txt.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.EnumerateFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.EnumerateFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.EnumerateFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
{
Console.WriteLine(fi.Name);
}
}
}
}
/*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*/
open System.IO
let di = DirectoryInfo @"C:\ExampleDir"
printfn "No search pattern returns:"
for fi in di.EnumerateFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.EnumerateFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.EnumerateFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.EnumerateFiles("*", SearchOption.AllDirectories) do
printfn $"{fi.Name}"
(*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO
Module Module1
Sub Main()
Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
Console.WriteLine("No search pattern returns:")
For Each fi In di.EnumerateFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.EnumerateFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.EnumerateFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
Console.WriteLine(fi.Name)
Next
End Sub
End Module
' This code produces output similar to the following:
' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' Search pattern *2* returns:
' log2.txt
' test2.txt
' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt
' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .
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) | Zero ou um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a cadeia de caracteres "*t" pesquisa todos os nomes ao terminar com a letra "t". ". A searchPattern
cadeia de caracteres "s*" procura todos os nomes no path
início com a letra "s".
Os EnumerateFiles métodos e GetFiles diferem da seguinte maneira:
Ao usar EnumerateFiles, você pode começar a enumerar a coleção de FileInfo objetos antes que toda a coleção seja retornada.
Ao usar GetFiles, você deve aguardar que toda a matriz de FileInfo objetos seja retornada antes de poder acessar a matriz.
Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.
Esse método preenche previamente os valores das seguintes FileInfo propriedades:
A coleção retornada não é armazenada em cache; cada chamada para o GetEnumerator método na coleção iniciará uma nova enumeração.