DirectoryInfo.GetFiles 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 lista de arquivos do diretório atual.
Sobrecargas
GetFiles(String, EnumerationOptions) |
Retorna uma lista de arquivos do diretório atual que correspondem às opções especificadas de padrão de pesquisa e enumeração. |
GetFiles(String, SearchOption) |
Retorna uma lista de arquivos do diretório atual correspondentes ao padrão de pesquisa fornecido e que usam um valor para determinar se as subpastas serão pesquisadas. |
GetFiles() |
Retorna uma lista de arquivos do diretório atual. |
GetFiles(String) |
Retorna uma lista de arquivos do diretório atual correspondentes ao padrão de pesquisa fornecido. |
GetFiles(String, EnumerationOptions)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma lista de arquivos do diretório atual que correspondem às opções especificadas de padrão de pesquisa e enumeração.
public:
cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFiles : string * System.IO.EnumerationOptions -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, enumerationOptions As EnumerationOptions) As 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 matriz de objetos FileInfo fortemente tipados que correspondem a searchPattern
e enumerationOptions
.
Exceções
.NET Framework e versões do .NET Core anteriores à 2.1: searchPattern
contém um ou mais caracteres inválidos definidos pelo GetInvalidPathChars() método .
searchPattern
é null
.
O caminho é inválido (por exemplo, ele 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.
Se não houver arquivos no DirectoryInfo, esse método retornará uma matriz vazia.
Os especificadores curinga a seguir são permitidos no searchPattern
parâmetro .
Caractere curinga | Descrição |
---|---|
* | Zero ou mais caracteres. |
? | Exatamente zero ou um caractere. |
A ordem dos nomes de arquivo retornados não é garantida; use o Sort método se uma ordem de classificação específica for necessária.
Caracteres curinga são permitidos. Por exemplo, a cadeia searchPattern
de caracteres "*.txt" pesquisa todos os nomes de arquivo com uma extensão de "txt". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes de arquivo começando com a letra "s". Se não houver nenhum arquivo ou nenhum arquivo que corresponda à searchPattern
cadeia de caracteres no DirectoryInfo, esse método retornará uma matriz vazia.
Observação
Ao usar o caractere curinga asterisco em um searchPattern
(por exemplo, "*.txt"), o comportamento de correspondência varia dependendo do comprimento da extensão de arquivo especificada. Um searchPattern
com uma extensão de arquivo de exatamente três caracteres retorna arquivos com uma extensão de três ou mais caracteres, em que os três primeiros caracteres correspondem à extensão de arquivo especificada no searchPattern
. Um searchPattern
com uma extensão de arquivo de um, dois ou mais de três caracteres retorna apenas arquivos com extensões exatamente desse comprimento que correspondem à extensão de arquivo especificada no searchPattern
. Ao usar o caractere curinga de ponto de interrogação, esse método retorna apenas arquivos que correspondem à extensão de arquivo especificada. Por exemplo, dado dois arquivos em um diretório, "file1.txt" e "file1.txtother", um padrão de pesquisa de "file?.txt" retorna apenas o primeiro arquivo, enquanto um padrão de pesquisa de "file*.txt" retorna os dois arquivos.
Observação
Como esse método verifica nomes de arquivo com o formato de nome de arquivo 8.3 e o formato de nome de arquivo longo, um padrão de pesquisa semelhante a "*1*.txt" pode retornar nomes de arquivo inesperados. Por exemplo, o uso de um padrão de pesquisa "*1*.txt" retornará "longfilename.txt" porque o formato de nome de arquivo 8.3 equivalente seria "longf~1.txt".
Esse método preenche previamente os valores das seguintes FileInfo propriedades:
Aplica-se a
GetFiles(String, SearchOption)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma lista de arquivos do diretório atual correspondentes ao padrão de pesquisa fornecido e que usam um valor para determinar se as subpastas serão pesquisadas.
public:
cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.SearchOption searchOption);
member this.GetFiles : string * System.IO.SearchOption -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, searchOption As SearchOption) As 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.
Retornos
Uma matriz do tipo FileInfo.
Exceções
.NET Framework e versões do .NET Core anteriores à 2.1: searchPattern
contém um ou mais caracteres inválidos definidos pelo GetInvalidPathChars() método .
searchPattern
é null
.
searchOption
não é um valor SearchOption válido.
O caminho é inválido (por exemplo, ele está em uma unidade não mapeada).
O chamador não tem a permissão necessária.
Exemplos
O exemplo a seguir mostra como obter uma lista de arquivos de 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:\Users\tomfitz\Documents\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.GetFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.GetFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.GetFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.GetFiles("*", 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:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", 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.GetFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.GetFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.GetFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.GetFiles("*", 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.
Se não houver arquivos no DirectoryInfo, esse método retornará uma matriz vazia.
Os especificadores curinga a seguir são permitidos em searchPattern
.
Caractere curinga | Descrição |
---|---|
* (asterisco) | Zero ou mais caracteres. |
? (ponto de interrogação) | Exatamente zero ou um caractere. |
A ordem dos nomes de arquivo retornados não é garantida; use o Sort método se uma ordem de classificação específica for necessária.
Caracteres curinga são permitidos. Por exemplo, a cadeia searchPattern
de caracteres "*.txt" pesquisa todos os nomes de arquivo com uma extensão de "txt". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes de arquivo começando com a letra "s". Se não houver nenhum arquivo ou nenhum arquivo que corresponda à searchPattern
cadeia de caracteres no DirectoryInfo, esse método retornará uma matriz vazia.
Observação
Ao usar o caractere curinga asterisco em um searchPattern
(por exemplo, "*.txt"), o comportamento de correspondência varia dependendo do comprimento da extensão de arquivo especificada. Um searchPattern
com uma extensão de arquivo de exatamente três caracteres retorna arquivos com uma extensão de três ou mais caracteres, em que os três primeiros caracteres correspondem à extensão de arquivo especificada no searchPattern
. Um searchPattern
com uma extensão de arquivo de um, dois ou mais de três caracteres retorna apenas arquivos com extensões exatamente desse comprimento que correspondem à extensão de arquivo especificada no searchPattern
. Ao usar o caractere curinga de ponto de interrogação, esse método retorna apenas arquivos que correspondem à extensão de arquivo especificada. Por exemplo, dado dois arquivos em um diretório, "file1.txt" e "file1.txtother", um padrão de pesquisa de "file?.txt" retorna apenas o primeiro arquivo, enquanto um padrão de pesquisa de "file*.txt" retorna os dois arquivos.
A lista a seguir mostra o comportamento de comprimentos diferentes para o searchPattern
parâmetro :
"*.abc" retorna arquivos com uma extensão de .abc, .abcd, .abcde, .abcdef e assim por diante.
"*.abcd" retorna apenas arquivos com uma extensão de .abcd.
"*.abcde" retorna apenas arquivos com uma extensão de .abcde.
"*.abcdef" retorna apenas arquivos com uma extensão de .abcdef.
Observação
Como esse método verifica nomes de arquivo com o formato de nome de arquivo 8.3 e o formato de nome de arquivo longo, um padrão de pesquisa semelhante a "*1*.txt" pode retornar nomes de arquivo inesperados. Por exemplo, o uso de um padrão de pesquisa "*1*.txt" retornará "longfilename.txt" porque o formato de nome de arquivo 8.3 equivalente seria "longf~1.txt".
Esse método preenche previamente os valores das seguintes FileInfo propriedades:
Confira também
Aplica-se a
GetFiles()
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma lista de arquivos do diretório atual.
public:
cli::array <System::IO::FileInfo ^> ^ GetFiles();
public System.IO.FileInfo[] GetFiles ();
member this.GetFiles : unit -> System.IO.FileInfo[]
Public Function GetFiles () As FileInfo()
Retornos
Uma matriz do tipo FileInfo.
Exceções
O caminho é inválido; por exemplo, ele está em uma unidade não mapeada.
Exemplos
O exemplo a seguir mostra como obter uma lista de arquivos de 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:\Users\tomfitz\Documents\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.GetFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.GetFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.GetFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.GetFiles("*", 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:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", 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.GetFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.GetFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.GetFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.GetFiles("*", 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.
Se não houver arquivos no DirectoryInfo, esse método retornará uma matriz vazia.
A ordem dos nomes de arquivo retornados não é garantida; use o Sort método se uma ordem de classificação específica for necessária.
Esse método preenche previamente os valores das seguintes FileInfo propriedades:
Confira também
Aplica-se a
GetFiles(String)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma lista de arquivos do diretório atual correspondentes ao padrão de pesquisa fornecido.
public:
cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern);
public System.IO.FileInfo[] GetFiles (string searchPattern);
member this.GetFiles : string -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String) As 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 matriz do tipo FileInfo.
Exceções
.NET Framework e versões do .NET Core anteriores à 2.1: searchPattern
contém um ou mais caracteres inválidos definidos pelo GetInvalidPathChars() método .
searchPattern
é null
.
O caminho é inválido (por exemplo, ele está em uma unidade não mapeada).
O chamador não tem a permissão necessária.
Exemplos
O exemplo a seguir mostra como obter uma lista de arquivos de 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:\Users\tomfitz\Documents\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.GetFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.GetFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.GetFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.GetFiles("*", 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:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", 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.GetFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.GetFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.GetFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.GetFiles("*", 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.
Se não houver arquivos no DirectoryInfo, esse método retornará uma matriz vazia.
Os especificadores curinga a seguir são permitidos no searchPattern
parâmetro .
Caractere curinga | Descrição |
---|---|
* | Zero ou mais caracteres. |
? | Exatamente zero ou um caractere. |
A ordem dos nomes de arquivo retornados não é garantida; use o Sort método se uma ordem de classificação específica for necessária.
Caracteres curinga são permitidos. Por exemplo, a cadeia searchPattern
de caracteres "*.txt" pesquisa todos os nomes de arquivo com uma extensão de "txt". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes de arquivo começando com a letra "s". Se não houver nenhum arquivo ou nenhum arquivo que corresponda à searchPattern
cadeia de caracteres no DirectoryInfo, esse método retornará uma matriz vazia.
Observação
Ao usar o caractere curinga asterisco em um searchPattern
(por exemplo, "*.txt"), o comportamento de correspondência varia dependendo do comprimento da extensão de arquivo especificada. Um searchPattern
com uma extensão de arquivo de exatamente três caracteres retorna arquivos com uma extensão de três ou mais caracteres, em que os três primeiros caracteres correspondem à extensão de arquivo especificada no searchPattern
. Um searchPattern
com uma extensão de arquivo de um, dois ou mais de três caracteres retorna apenas arquivos com extensões exatamente desse comprimento que correspondem à extensão de arquivo especificada no searchPattern
. Ao usar o caractere curinga de ponto de interrogação, esse método retorna apenas arquivos que correspondem à extensão de arquivo especificada. Por exemplo, dado dois arquivos em um diretório, "file1.txt" e "file1.txtother", um padrão de pesquisa de "file?.txt" retorna apenas o primeiro arquivo, enquanto um padrão de pesquisa de "file*.txt" retorna os dois arquivos.
Observação
Como esse método verifica nomes de arquivo com o formato de nome de arquivo 8.3 e o formato de nome de arquivo longo, um padrão de pesquisa semelhante a "*1*.txt" pode retornar nomes de arquivo inesperados. Por exemplo, o uso de um padrão de pesquisa "*1*.txt" retornará "longfilename.txt" porque o formato de nome de arquivo 8.3 equivalente seria "longf~1.txt".
Esse método preenche previamente os valores das seguintes FileInfo propriedades: