DirectoryInfo.GetFiles Método

Definição

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:

  1. Attributes

  2. CreationTime

  3. CreationTimeUtc

  4. LastAccessTime

  5. LastAccessTimeUtc

  6. LastWriteTime

  7. LastWriteTimeUtc

  8. Length

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:

Confira também

Aplica-se a