Directory.GetFiles Método

Definição

Retorna os nomes dos arquivos que atendem aos critérios especificados.Returns the names of files that meet specified criteria.

Sobrecargas

GetFiles(String)

Retorna os nomes de arquivos (inclusive os caminhos) no diretório especificado.Returns the names of files (including their paths) in the specified directory.

GetFiles(String, String)

Retorna os nomes de arquivo (incluindo os caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado.Returns the names of files (including their paths) that match the specified search pattern in the specified directory.

GetFiles(String, String, EnumerationOptions)

Retorna os nomes de arquivos (incluindo os caminhos) que correspondem às opções de enumeração e ao padrão de pesquisa especificados no diretório especificado.Returns the names of files (including their paths) that match the specified search pattern and enumeration options in the specified directory.

GetFiles(String, String, SearchOption)

Retorna os nomes de arquivo (incluindo os caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado, usando um valor para determinar se as subpastas devem ser pesquisadas.Returns the names of files (including their paths) that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories.

GetFiles(String)

Retorna os nomes de arquivos (inclusive os caminhos) no diretório especificado.Returns the names of files (including their paths) in the specified directory.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path);
public static string[] GetFiles (string path);
static member GetFiles : string -> string[]
Public Shared Function GetFiles (path As String) As String()

Parâmetros

path
String

O caminho relativo ou absoluto para o diretório a ser pesquisado.The relative or absolute path to the directory to search. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.This string is not case-sensitive.

Retornos

String[]

Uma matriz de nomes completos (incluindo caminhos) para os arquivos no diretório especificado, ou uma matriz vazia se nenhum arquivo foi encontrado.An array of the full names (including paths) for the files in the specified directory, or an empty array if no files are found.

Exceções

path é um nome de arquivo.path is a file name.

- ou --or- Erro de rede.A network error has occurred.

O chamador não tem a permissão necessária.The caller does not have the required permission.

path é uma cadeia de comprimento zero, contém somente espaços em branco ou um ou mais caracteres inválidos.path is a zero-length string, contains only white space, or contains one or more invalid characters. Consulte caracteres inválidos usando o método GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

path é null.path is null.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.The specified path, file name, or both exceed the system-defined maximum length.

O caminho especificado não foi encontrado ou é inválido (por exemplo, ele está em uma unidade não mapeada).The specified path is not found or is invalid (for example, it is on an unmapped drive).

Exemplos

O exemplo a seguir demonstra como usar o método GetFiles para retornar nomes de arquivo de um local especificado pelo usuário.The following example demonstrates how to use the GetFiles method to return file names from a user-specified location. O exemplo é configurado para capturar todos os erros comuns a esse método.The example is configured to catch all errors common to this method.

// For Directory::GetFiles and Directory::GetDirectories
// For File::Exists, Directory::Exists
using namespace System;
using namespace System::IO;
using namespace System::Collections;

// Insert logic for processing found files here.
void ProcessFile( String^ path )
{
   Console::WriteLine( "Processed file '{0}'.", path );
}


// Process all files in the directory passed in, recurse on any directories 
// that are found, and process the files they contain.
void ProcessDirectory( String^ targetDirectory )
{
   
   // Process the list of files found in the directory.
   array<String^>^fileEntries = Directory::GetFiles( targetDirectory );
   IEnumerator^ files = fileEntries->GetEnumerator();
   while ( files->MoveNext() )
   {
      String^ fileName = safe_cast<String^>(files->Current);
      ProcessFile( fileName );
   }

   
   // Recurse into subdirectories of this directory.
   array<String^>^subdirectoryEntries = Directory::GetDirectories( targetDirectory );
   IEnumerator^ dirs = subdirectoryEntries->GetEnumerator();
   while ( dirs->MoveNext() )
   {
      String^ subdirectory = safe_cast<String^>(dirs->Current);
      ProcessDirectory( subdirectory );
   }
}

int main( int argc, char *argv[] )
{
   for ( int i = 1; i < argc; i++ )
   {
      String^ path = gcnew String(argv[ i ]);
      if ( File::Exists( path ) )
      {
         
         // This path is a file
         ProcessFile( path );
      }
      else
      if ( Directory::Exists( path ) )
      {
         
         // This path is a directory
         ProcessDirectory( path );
      }
      else
      {
         Console::WriteLine( "{0} is not a valid file or directory.", path );
      }

   }
}

// For Directory.GetFiles and Directory.GetDirectories
// For File.Exists, Directory.Exists
using System;
using System.IO;
using System.Collections;

public class RecursiveFileProcessor 
{
    public static void Main(string[] args) 
    {
        foreach(string path in args) 
        {
            if(File.Exists(path)) 
            {
                // This path is a file
                ProcessFile(path); 
            }               
            else if(Directory.Exists(path)) 
            {
                // This path is a directory
                ProcessDirectory(path);
            }
            else 
            {
                Console.WriteLine("{0} is not a valid file or directory.", path);
            }        
        }        
    }

    // Process all files in the directory passed in, recurse on any directories 
    // that are found, and process the files they contain.
    public static void ProcessDirectory(string targetDirectory) 
    {
        // Process the list of files found in the directory.
        string [] fileEntries = Directory.GetFiles(targetDirectory);
        foreach(string fileName in fileEntries)
            ProcessFile(fileName);

        // Recurse into subdirectories of this directory.
        string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
        foreach(string subdirectory in subdirectoryEntries)
            ProcessDirectory(subdirectory);
    }
        
    // Insert logic for processing found files here.
    public static void ProcessFile(string path) 
    {
        Console.WriteLine("Processed file '{0}'.", path);	    
    }
}
' For Directory.GetFiles and Directory.GetDirectories
' For File.Exists, Directory.Exists 

Imports System.IO
Imports System.Collections

Public Class RecursiveFileProcessor

    Public Overloads Shared Sub Main(ByVal args() As String)
        Dim path As String
        For Each path In args
            If File.Exists(path) Then
                ' This path is a file.
                ProcessFile(path)
            Else
                If Directory.Exists(path) Then
                    ' This path is a directory.
                    ProcessDirectory(path)
                Else
                    Console.WriteLine("{0} is not a valid file or directory.", path)
                End If
            End If
        Next path
    End Sub


    ' Process all files in the directory passed in, recurse on any directories 
    ' that are found, and process the files they contain.
    Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
        Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
        ' Process the list of files found in the directory.
        Dim fileName As String
        For Each fileName In fileEntries
            ProcessFile(fileName)

        Next fileName
        Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)
        ' Recurse into subdirectories of this directory.
        Dim subdirectory As String
        For Each subdirectory In subdirectoryEntries
            ProcessDirectory(subdirectory)
        Next subdirectory

    End Sub

    ' Insert logic for processing found files here.
    Public Shared Sub ProcessFile(ByVal path As String)
        Console.WriteLine("Processed file '{0}'.", path)
    End Sub
End Class

Comentários

Os métodos EnumerateFiles e GetFiles diferem da seguinte maneira: quando você usa EnumerateFiles, você pode iniciar a enumeração da coleção de nomes antes que toda a coleção seja retornada; ao usar GetFiles, você deve aguardar a matriz inteira de nomes a ser retornada antes de poder acessar a matriz.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Portanto, quando você estiver trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Os nomes de arquivo retornados são anexados ao parâmetro de path fornecido.The returned file names are appended to the supplied path parameter.

Esse método é idêntico ao GetFiles(String, String) com o asterisco (*) especificado como o padrão de pesquisa.This method is identical to GetFiles(String, String) with the asterisk (*) specified as the search pattern.

O parâmetro path pode especificar informações de caminho relativo ou absoluta.The path parameter can specify relative or absolute path information. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual.Relative path information is interpreted as relative to the current working directory. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

A ordem dos nomes de arquivo retornados não é garantida; Use o método Sort se uma ordem de classificação específica for necessária.The order of the returned file names is not guaranteed; use the Sort method if a specific sort order is required.

O parâmetro path não diferencia maiúsculas de minúsculas.The path parameter is not case-sensitive.

Para obter uma lista de tarefas comuns de e/s, consulte tarefas comuns de e/s.For a list of common I/O tasks, see Common I/O Tasks.

Veja também

GetFiles(String, String)

Retorna os nomes de arquivo (incluindo os caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado.Returns the names of files (including their paths) that match the specified search pattern in the specified directory.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern);
public static string[] GetFiles (string path, string searchPattern);
static member GetFiles : string * string -> string[]
Public Shared Function GetFiles (path As String, searchPattern As String) As String()

Parâmetros

path
String

O caminho relativo ou absoluto para o diretório a ser pesquisado.The relative or absolute path to the directory to search. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.This string is not case-sensitive.

searchPattern
String

A cadeia de caracteres de pesquisa para correspondência com os nomes dos arquivos em path.The search string to match against the names of files in path. 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.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

Retornos

String[]

Uma matriz de nomes completos (incluindo caminhos) para os arquivos no diretório especificado que correspondem ao padrão de pesquisa especificada, ou uma matriz vazia, se nenhum arquivo foi encontrado.An array of the full names (including paths) for the files in the specified directory that match the specified search pattern, or an empty array if no files are found.

Exceções

path é um nome de arquivo.path is a file name.

- ou --or- Erro de rede.A network error has occurred.

O chamador não tem a permissão necessária.The caller does not have the required permission.

path é uma cadeia de comprimento zero, contém somente espaços em branco ou um ou mais caracteres inválidos.path is a zero-length string, contains only white space, or contains one or more invalid characters. É possível consultar caracteres inválidos usando GetInvalidPathChars().You can query for invalid characters by using GetInvalidPathChars().

- ou --or- searchPattern não contém um padrão válido.searchPattern doesn't contain a valid pattern.

path ou searchPattern é null.path or searchPattern is null.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.The specified path, file name, or both exceed the system-defined maximum length.

O caminho especificado não foi encontrado ou é inválido (por exemplo, ele está em uma unidade não mapeada).The specified path is not found or is invalid (for example, it is on an unmapped drive).

Exemplos

O exemplo a seguir conta o número de arquivos que começam com a letra especificada.The following example counts the number of files that begin with the specified letter.

using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      
      // Only get files that begin with the letter "c".
      array<String^>^dirs = Directory::GetFiles( "c:\\", "c*" );
      Console::WriteLine( "The number of files starting with c is {0}.", dirs->Length );
      Collections::IEnumerator^ myEnum = dirs->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         Console::WriteLine( myEnum->Current );
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}

using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        try 
        {
            // Only get files that begin with the letter "c".
            string[] dirs = Directory.GetFiles(@"c:\", "c*");
            Console.WriteLine("The number of files starting with c is {0}.", dirs.Length);
            foreach (string dir in dirs) 
            {
                Console.WriteLine(dir);
            }
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Try
            ' Only get files that begin with the letter "c".
            Dim dirs As String() = Directory.GetFiles("c:\", "c*")
            Console.WriteLine("The number of files starting with c is {0}.", dirs.Length)
            Dim dir As String
            For Each dir In dirs
                Console.WriteLine(dir)
            Next
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

Comentários

Os nomes de arquivo retornados são anexados ao parâmetro de path fornecido e a ordem dos nomes de arquivo retornados não é garantida; Use o método Sort se uma ordem de classificação específica for necessária.The returned file names are appended to the supplied path parameter and the order of the returned file names is not guaranteed; use the Sort method if a specific sort order is required.

searchPattern pode ser uma combinação de caracteres literais e curinga, mas não oferece suporte a expressões regulares.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Os especificadores curinga a seguir são permitidos em searchPattern.The following wildcard specifiers are permitted in searchPattern.

Especificador de curingaWildcard specifier CorrespondênciasMatches
* (asterisco)* (asterisk) Zero ou mais caracteres nessa posição.Zero or more characters in that position.
?? (ponto de interrogação)(question mark) Zero ou um caractere nessa posição.Zero or one character in that position.

Caracteres diferentes do curinga são caracteres literais.Characters other than the wildcard are literal characters. Por exemplo, a cadeia de caracteres searchPattern "*t" pesquisa todos os nomes em path terminando com a letra "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". A cadeia de caracteres searchPattern "s*" pesquisa todos os nomes em path começando com a letra "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern não pode terminar em dois pontos ("..") ou conter dois pontos ("..") seguido por DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Consulte caracteres inválidos usando o método GetInvalidPathChars.You can query for invalid characters by using the GetInvalidPathChars method.

Observação

Quando você usa o caractere curinga asterisco em um searchPattern como "*. txt", o número de caracteres na extensão especificada afeta a pesquisa da seguinte maneira:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Se a extensão especificada tiver exatamente três caracteres, o método retornará arquivos com extensões que começam com a extensão especificada.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Por exemplo, "*. xls" retorna "book. xls" e "book. xlsx".For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Em todos os outros casos, o método retorna arquivos que correspondem exatamente à extensão especificada.In all other cases, the method returns files that exactly match the specified extension. Por exemplo, "*. ia" retorna "file.ai", mas não "File. aif".For example, "*.ai" returns "file.ai" but not "file.aif".

Quando você usa o caractere curinga de ponto de interrogação, esse método retorna apenas os arquivos que correspondem à extensão de arquivo especificada.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Por exemplo, considerando dois arquivos, "arquivo1. txt" e "arquivo1. txtother", em um diretório, um padrão de pesquisa de "arquivo?. txt "retorna apenas o primeiro arquivo, enquanto um padrão de pesquisa de" File*. txt "retorna ambos os arquivos.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

Observação

Como esse método verifica os 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.Because this method checks against file names with both the 8.3 file name format and the long file name format, a search pattern similar to "*1*.txt" may return unexpected file names. Por exemplo, o uso de um padrão de pesquisa de "*1*. txt" retorna "LongFileName. txt" porque o formato de nome de arquivo 8,3 equivalente é "LONGFI ~ 1. TXT".For example, using a search pattern of "*1*.txt" returns "longfilename.txt" because the equivalent 8.3 file name format is "LONGFI~1.TXT".

Os métodos EnumerateFiles e GetFiles diferem da seguinte maneira: quando você usa EnumerateFiles, você pode iniciar a enumeração da coleção de nomes antes que toda a coleção seja retornada; ao usar GetFiles, você deve aguardar a matriz inteira de nomes a ser retornada antes de poder acessar a matriz.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Portanto, quando você estiver trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

O parâmetro path pode especificar informações de caminho relativo ou absoluta.The path parameter can specify relative or absolute path information. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual.Relative path information is interpreted as relative to the current working directory. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

O parâmetro path não diferencia maiúsculas de minúsculas.The path parameter is not case-sensitive.

Para obter uma lista de tarefas comuns de e/s, consulte tarefas comuns de e/s.For a list of common I/O tasks, see Common I/O Tasks.

Veja também

GetFiles(String, String, EnumerationOptions)

Retorna os nomes de arquivos (incluindo os caminhos) que correspondem às opções de enumeração e ao padrão de pesquisa especificados no diretório especificado.Returns the names of files (including their paths) that match the specified search pattern and enumeration options in the specified directory.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetFiles : string * string * System.IO.EnumerationOptions -> string[]

Parâmetros

path
String

O caminho relativo ou absoluto para o diretório a ser pesquisado.The relative or absolute path to the directory to search. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.This string is not case-sensitive.

searchPattern
String

A cadeia de caracteres de pesquisa para correspondência com os nomes dos subdiretórios em path.The search string to match against the names of subdirectories in path. Esse parâmetro pode conter uma combinação de caracteres literais e curinga válidos, mas não dá suporte a expressões regulares.This parameter can contain a combination of valid literal and wildcard characters, but it doesn't support regular expressions.

enumerationOptions
EnumerationOptions

Um objeto que descreve a configuração de pesquisa e enumeração a ser usada.An object that describes the search and enumeration configuration to use.

Retornos

String[]

Uma matriz de nomes completos (incluindo caminhos) para os arquivos no diretório especificado que correspondem ao padrão de pesquisa e às opções de enumeração especificados ou uma matriz vazia se nenhum arquivo foi encontrado.An array of the full names (including paths) for the files in the specified directory that match the specified search pattern and enumeration options, or an empty array if no files are found.

Exceções

path é um nome de arquivo.path is a file name.

- ou --or- Erro de rede.A network error has occurred.

O chamador não tem a permissão necessária.The caller does not have the required permission.

path é uma cadeia de comprimento zero, contém somente espaços em branco ou um ou mais caracteres inválidos.path is a zero-length string, contains only white space, or contains one or more invalid characters. É possível consultar caracteres inválidos usando GetInvalidPathChars().You can query for invalid characters by using GetInvalidPathChars().

- ou --or- searchPattern não contém um padrão válido.searchPattern doesn't contain a valid pattern.

path ou searchPattern é null.path or searchPattern is null.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.The specified path, file name, or both exceed the system-defined maximum length.

O caminho especificado não foi encontrado ou é inválido (por exemplo, ele está em uma unidade não mapeada).The specified path is not found or is invalid (for example, it is on an unmapped drive).

Comentários

Os nomes de arquivo retornados são anexados ao parâmetro de path fornecido e a ordem dos nomes de arquivo retornados não é garantida; Use o método Sort se uma ordem de classificação específica for necessária.The returned file names are appended to the supplied path parameter and the order of the returned file names is not guaranteed; use the Sort method if a specific sort order is required.

searchPattern pode ser uma combinação de caracteres literais e curinga, mas não oferece suporte a expressões regulares.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Os especificadores curinga a seguir são permitidos em searchPattern.The following wildcard specifiers are permitted in searchPattern.

Especificador de curingaWildcard specifier CorrespondênciasMatches
* (asterisco)* (asterisk) Zero ou mais caracteres nessa posição.Zero or more characters in that position.
?? (ponto de interrogação)(question mark) Zero ou um caractere nessa posição.Zero or one character in that position.

Caracteres diferentes do curinga são caracteres literais.Characters other than the wildcard are literal characters. Por exemplo, a cadeia de caracteres searchPattern "*t" pesquisa todos os nomes em path terminando com a letra "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". A cadeia de caracteres searchPattern "s*" pesquisa todos os nomes em path começando com a letra "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern não pode terminar em dois pontos ("..") ou conter dois pontos ("..") seguido por DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Consulte caracteres inválidos usando o método GetInvalidPathChars.You can query for invalid characters by using the GetInvalidPathChars method.

Observação

Quando você usa o caractere curinga asterisco em um searchPattern como "*. txt", o número de caracteres na extensão especificada afeta a pesquisa da seguinte maneira:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Se a extensão especificada tiver exatamente três caracteres, o método retornará arquivos com extensões que começam com a extensão especificada.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Por exemplo, "*. xls" retorna "book. xls" e "book. xlsx".For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Em todos os outros casos, o método retorna arquivos que correspondem exatamente à extensão especificada.In all other cases, the method returns files that exactly match the specified extension. Por exemplo, "*. ia" retorna "file.ai", mas não "File. aif".For example, "*.ai" returns "file.ai" but not "file.aif".

Quando você usa o caractere curinga de ponto de interrogação, esse método retorna apenas os arquivos que correspondem à extensão de arquivo especificada.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Por exemplo, considerando dois arquivos, "arquivo1. txt" e "arquivo1. txtother", em um diretório, um padrão de pesquisa de "arquivo?. txt "retorna apenas o primeiro arquivo, enquanto um padrão de pesquisa de" File*. txt "retorna ambos os arquivos.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

Observação

Como esse método verifica os 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.Because this method checks against file names with both the 8.3 file name format and the long file name format, a search pattern similar to "*1*.txt" may return unexpected file names. Por exemplo, o uso de um padrão de pesquisa de "*1*. txt" retorna "LongFileName. txt" porque o formato de nome de arquivo 8,3 equivalente é "LONGFI ~ 1. TXT".For example, using a search pattern of "*1*.txt" returns "longfilename.txt" because the equivalent 8.3 file name format is "LONGFI~1.TXT".

Os métodos EnumerateFiles e GetFiles diferem da seguinte maneira: quando você usa EnumerateFiles, você pode iniciar a enumeração da coleção de nomes antes que toda a coleção seja retornada; ao usar GetFiles, você deve aguardar a matriz inteira de nomes a ser retornada antes de poder acessar a matriz.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Portanto, quando você estiver trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

O parâmetro path pode especificar informações de caminho relativo ou absoluta.The path parameter can specify relative or absolute path information. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual.Relative path information is interpreted as relative to the current working directory. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

O parâmetro path não diferencia maiúsculas de minúsculas.The path parameter is not case-sensitive.

Para obter uma lista de tarefas comuns de e/s, consulte tarefas comuns de e/s.For a list of common I/O tasks, see Common I/O Tasks.

GetFiles(String, String, SearchOption)

Retorna os nomes de arquivo (incluindo os caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado, usando um valor para determinar se as subpastas devem ser pesquisadas.Returns the names of files (including their paths) that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetFiles (string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetFiles : string * string * System.IO.SearchOption -> string[]

Parâmetros

path
String

O caminho relativo ou absoluto para o diretório a ser pesquisado.The relative or absolute path to the directory to search. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.This string is not case-sensitive.

searchPattern
String

A cadeia de caracteres de pesquisa para correspondência com os nomes dos arquivos em path.The search string to match against the names of files in path. 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.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption

Um dos valores de enumeração que especifica se a operação de pesquisa deve incluir todos os subdiretórios ou apenas o diretório atual.One of the enumeration values that specifies whether the search operation should include all subdirectories or only the current directory.

Retornos

String[]

Uma matriz de nomes completos (incluindo caminhos) para os arquivos no diretório especificado que correspondem ao padrão e à opção de pesquisa especificada, ou uma matriz vazia, se nenhum arquivo foi encontrado.An array of the full names (including paths) for the files in the specified directory that match the specified search pattern and option, or an empty array if no files are found.

Exceções

path é uma cadeia de comprimento zero, contém somente espaços em branco ou um ou mais caracteres inválidos.path is a zero-length string, contains only white space, or contains one or more invalid characters. Consulte caracteres inválidos com o método GetInvalidPathChars().You can query for invalid characters with the GetInvalidPathChars() method.

- ou --or- searchPattern não contém um padrão válido.searchPattern does not contain a valid pattern.

path ou searchpattern é null.path or searchpattern is null.

searchOption não é um valor SearchOption válido.searchOption is not a valid SearchOption value.

O chamador não tem a permissão necessária.The caller does not have the required permission.

O caminho especificado não foi encontrado ou é inválido (por exemplo, ele está em uma unidade não mapeada).The specified path is not found or is invalid (for example, it is on an unmapped drive).

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.The specified path, file name, or both exceed the system-defined maximum length.

path é um nome de arquivo.path is a file name.

- ou --or- Erro de rede.A network error has occurred.

Comentários

Os nomes de arquivo retornados são anexados ao parâmetro fornecido path e a ordem dos nomes de arquivo retornados não é garantida; Use o método Sort se uma ordem de classificação específica for necessária.The returned file names are appended to the supplied parameter path and the order of the returned file names is not guaranteed; use the Sort method if a specific sort order is required.

searchPattern pode ser uma combinação de caracteres literais e curinga, mas não oferece suporte a expressões regulares.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Os especificadores curinga a seguir são permitidos em searchPattern.The following wildcard specifiers are permitted in searchPattern.

Especificador de curingaWildcard specifier CorrespondênciasMatches
* (asterisco)* (asterisk) Zero ou mais caracteres nessa posição.Zero or more characters in that position.
?? (ponto de interrogação)(question mark) Zero ou um caractere nessa posição.Zero or one character in that position.

Caracteres diferentes do curinga são caracteres literais.Characters other than the wildcard are literal characters. Por exemplo, a cadeia de caracteres searchPattern "*t" pesquisa todos os nomes em path terminando com a letra "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". A cadeia de caracteres searchPattern "s*" pesquisa todos os nomes em path começando com a letra "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern não pode terminar em dois pontos ("..") ou conter dois pontos ("..") seguido por DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Consulte caracteres inválidos usando o método GetInvalidPathChars.You can query for invalid characters by using the GetInvalidPathChars method.

Observação

Quando você usa o caractere curinga asterisco em um searchPattern como "*. txt", o número de caracteres na extensão especificada afeta a pesquisa da seguinte maneira:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Se a extensão especificada tiver exatamente três caracteres, o método retornará arquivos com extensões que começam com a extensão especificada.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Por exemplo, "*. xls" retorna "book. xls" e "book. xlsx".For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Em todos os outros casos, o método retorna arquivos que correspondem exatamente à extensão especificada.In all other cases, the method returns files that exactly match the specified extension. Por exemplo, "*. ia" retorna "file.ai", mas não "File. aif".For example, "*.ai" returns "file.ai" but not "file.aif".

Quando você usa o caractere curinga de ponto de interrogação, esse método retorna apenas os arquivos que correspondem à extensão de arquivo especificada.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Por exemplo, considerando dois arquivos, "arquivo1. txt" e "arquivo1. txtother", em um diretório, um padrão de pesquisa de "arquivo?. txt "retorna apenas o primeiro arquivo, enquanto um padrão de pesquisa de" File*. txt "retorna ambos os arquivos.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

Observação

Como esse método verifica os 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.Because this method checks against file names with both the 8.3 file name format and the long file name format, a search pattern similar to "*1*.txt" may return unexpected file names. Por exemplo, o uso de um padrão de pesquisa de "*1*. txt" retorna "LongFileName. txt" porque o formato de nome de arquivo 8,3 equivalente é "LONGFI ~ 1. TXT".For example, using a search pattern of "*1*.txt" returns "longfilename.txt" because the equivalent 8.3 file name format is "LONGFI~1.TXT".

Os métodos EnumerateFiles e GetFiles diferem da seguinte maneira: quando você usa EnumerateFiles, você pode iniciar a enumeração da coleção de nomes antes que toda a coleção seja retornada; ao usar GetFiles, você deve aguardar a matriz inteira de nomes a ser retornada antes de poder acessar a matriz.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Portanto, quando você estiver trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Os nomes de arquivo incluem o caminho completo.The file names include the full path.

O parâmetro path pode especificar informações de caminho relativo ou absoluta.The path parameter can specify relative or absolute path information. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual.Relative path information is interpreted as relative to the current working directory. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

O parâmetro path não diferencia maiúsculas de minúsculas.The path parameter is not case-sensitive.

Para obter uma lista de tarefas comuns de e/s, consulte tarefas comuns de e/s.For a list of common I/O tasks, see Common I/O Tasks.

Veja também

Aplica-se a