Directory.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 os nomes dos arquivos que atendem aos critérios especificados.
Sobrecargas
GetFiles(String) |
Retorna os nomes de arquivos (inclusive os caminhos) no diretório especificado. |
GetFiles(String, String) |
Retorna os nomes de arquivo (incluindo os caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado. |
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. |
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. |
GetFiles(String)
Retorna os nomes de arquivos (inclusive os caminhos) no diretório especificado.
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. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.
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.
Exceções
O chamador não tem a permissão necessária.
.NET Framework e versões do .NET Core com mais de 2.1: path
é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars().
path
é null
.
O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.
O caminho especificado não foi encontrado ou é inválido (por exemplo, ele está em uma unidade não mapeada).
Exemplos
O exemplo a seguir demonstra como usar o GetFiles método para retornar nomes de arquivo de um local especificado pelo usuário. O exemplo é configurado para capturar todos os erros comuns a esse método.
// 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);
}
}
module RecursiveFileProcessor
open System.IO
// Insert logic for processing found files here.
let processFile path =
printfn $"Processed file '%s{path}'."
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
let rec processDirectory targetDirectory =
// Process the list of files found in the directory.
let fileEntries = Directory.GetFiles targetDirectory
for fileName in fileEntries do
processFile fileName
// Recurse into subdirectories of this directory.
let subdirectoryEntries = Directory.GetDirectories targetDirectory
for subdirectory in subdirectoryEntries do
processDirectory subdirectory
[<EntryPoint>]
let main args =
for path in args do
if File.Exists path then
// This path is a file
processFile path
elif Directory.Exists path then
// This path is a directory
processDirectory path
else
printfn $"{path} is not a valid file or directory."
0
' 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 EnumerateFiles métodos e GetFiles os métodos diferem da seguinte maneira: quando você usa EnumerateFiles, você pode começar a enumerar a coleção de nomes antes que toda a coleção seja retornada; quando você usar GetFiles, deverá aguardar que toda a matriz de nomes seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.
Os nomes de arquivo retornados são acrescentados ao parâmetro fornecido path
.
Esse método é idêntico ao GetFiles(String, String) asterisco (*) especificado como o padrão de pesquisa.
O path
parâmetro pode especificar informações de caminho relativas ou absolutas. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.
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.
O path
parâmetro não diferencia maiúsculas de minúsculas.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
GetFiles(String, String)
Retorna os nomes de arquivo (incluindo os caminhos) que correspondem ao padrão de pesquisa especificado no diretório especificado.
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. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.
- searchPattern
- String
A cadeia de caracteres de pesquisa para correspondência com os nomes dos arquivos em 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.
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.
Exceções
O chamador não tem a permissão necessária.
.NET Framework e versões do .NET Core com mais de 2.1: path
é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. É possível consultar caracteres inválidos usando GetInvalidPathChars().
- ou -
searchPattern
não contém um padrão válido.
path
ou searchPattern
é null
.
O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.
O caminho especificado não foi encontrado ou é inválido (por exemplo, ele está em uma unidade não mapeada).
Exemplos
O exemplo a seguir conta o número de arquivos que começam com a letra especificada.
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());
}
}
}
open System.IO
try
// Only get files that begin with the letter "c".
let dirs = Directory.GetFiles(@"c:\", "c*")
printfn $"The number of files starting with c is {dirs.Length}."
for dir in dirs do
printfn $"{dir}"
with e ->
printfn $"The process failed: {e}"
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 acrescentados ao parâmetro fornecido path
e 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.
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) | Exatamente um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a searchPattern
cadeia de caracteres "*t" pesquisa todos os nomes ao path
terminar com a letra "t". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes no path
início com a letra "s".
searchPattern
não pode terminar em dois períodos ("..") ou conter dois períodos ("..") seguidos ou DirectorySeparatorChar AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars.
Observação
Quando você usa o caractere curinga do asterisco em um searchPattern
tipo "*.txt", o número de caracteres na extensão especificada afeta a pesquisa da seguinte maneira:
- 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. Por exemplo, "*.xls" retorna "book.xls" e "book.xlsx".
- Em todos os outros casos, o método retorna arquivos que correspondem exatamente à extensão especificada. Por exemplo, "*.ai" retorna "file.ai", mas não "file.aif".
Quando você usa o caractere curinga do ponto de interrogação, esse método retorna apenas arquivos que correspondem à extensão de arquivo especificada. Por exemplo, dado dois arquivos, "file1.txt" e "file1.txtother", em um diretório, um padrão de pesquisa de "file?.txt" retorna apenas o primeiro arquivo, enquanto um padrão de pesquisa de ".txt de arquivo* " retorna ambos os 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, usar um padrão de pesquisa de "*1*.txt" retorna "longfilename.txt" porque o formato de nome de arquivo 8.3 equivalente é "LONGFI~1.TXT".
Os EnumerateFiles métodos e GetFiles os métodos diferem da seguinte maneira: quando você usa EnumerateFiles, você pode começar a enumerar a coleção de nomes antes que toda a coleção seja retornada; quando você usar GetFiles, deverá aguardar que toda a matriz de nomes seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.
O path
parâmetro pode especificar informações de caminho relativas ou absolutas. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.
O path
parâmetro não diferencia maiúsculas de minúsculas.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
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.
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[]
Public Shared Function GetFiles (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As String()
Parâmetros
- path
- String
O caminho relativo ou absoluto para o diretório a ser pesquisado. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.
- searchPattern
- String
A cadeia de caracteres de pesquisa para correspondência com os nomes dos subdiretórios em 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.
- enumerationOptions
- EnumerationOptions
Um objeto que descreve a configuração de pesquisa e enumeração a ser usada.
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.
Exceções
O chamador não tem a permissão necessária.
.NET Framework e versões do .NET Core anteriores à 2.1: path
é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. É possível consultar caracteres inválidos usando GetInvalidPathChars().
- ou -
searchPattern
não contém um padrão válido.
path
ou searchPattern
é null
.
O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.
O caminho especificado não foi encontrado ou é inválido (por exemplo, ele está em uma unidade não mapeada).
Comentários
Os nomes de arquivo retornados são acrescentados ao parâmetro fornecido path
e 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.
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) | Exatamente um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a searchPattern
cadeia de caracteres "*t" pesquisa todos os nomes ao path
terminar com a letra "t". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes no path
início com a letra "s".
searchPattern
não pode terminar em dois períodos ("..") ou conter dois períodos ("..") seguidos ou DirectorySeparatorChar AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars.
Observação
Quando você usa o caractere curinga do asterisco em um searchPattern
tipo "*.txt", o número de caracteres na extensão especificada afeta a pesquisa da seguinte maneira:
- 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. Por exemplo, "*.xls" retorna "book.xls" e "book.xlsx".
- Em todos os outros casos, o método retorna arquivos que correspondem exatamente à extensão especificada. Por exemplo, "*.ai" retorna "file.ai" mas não "file.aif".
Quando você usa 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, "file1.txt" e "file1.txtother", em um diretório, um padrão de pesquisa de "file?.txt" retorna apenas o primeiro arquivo, enquanto um padrão de pesquisa de ".txt de arquivo* " 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, usar um padrão de pesquisa de "*1*.txt" retorna "longfilename.txt" porque o formato equivalente de nome de arquivo 8.3 é "LONGFI~1.TXT".
Os EnumerateFiles métodos e os GetFiles métodos diferem da seguinte maneira: quando você usa EnumerateFiles, você pode começar a enumerar a coleção de nomes antes que toda a coleção seja retornada; quando você usa GetFiles, você deve aguardar que toda a matriz de nomes seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.
O path
parâmetro pode especificar informações de caminho relativas ou absolutas. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.
O path
parâmetro não diferencia maiúsculas de minúsculas.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Aplica-se a
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.
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[]
Public Shared Function GetFiles (path As String, searchPattern As String, searchOption As SearchOption) As String()
Parâmetros
- path
- String
O caminho relativo ou absoluto para o diretório a ser pesquisado. Esta cadeia de caracteres não diferencia maiúsculas de minúsculas.
- searchPattern
- String
A cadeia de caracteres de pesquisa para correspondência com os nomes dos arquivos em 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.
- 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.
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.
Exceções
.NET Framework e versões do .NET Core anteriores à 2.1: path
é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Consulte caracteres inválidos com o método GetInvalidPathChars().
- ou -
searchPattern
não contém um padrão válido.
path
ou searchpattern
é null
.
searchOption
não é um valor SearchOption válido.
O chamador não tem a permissão necessária.
O caminho especificado não foi encontrado ou é inválido (por exemplo, ele está em uma unidade não mapeada).
O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.
Comentários
Os nomes de arquivo retornados são acrescentados ao parâmetro path
fornecido e 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.
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) | Exatamente um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a searchPattern
cadeia de caracteres "*t" pesquisa todos os nomes ao path
terminar com a letra "t". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes no path
início com a letra "s".
searchPattern
não pode terminar em dois períodos ("..") ou conter dois períodos ("..") seguidos ou DirectorySeparatorChar AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars.
Observação
Quando você usa o caractere curinga asterisco em um searchPattern
caractere como "*.txt", o número de caracteres na extensão especificada afeta a pesquisa da seguinte maneira:
- 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. Por exemplo, "*.xls" retorna "book.xls" e "book.xlsx".
- Em todos os outros casos, o método retorna arquivos que correspondem exatamente à extensão especificada. Por exemplo, "*.ai" retorna "file.ai" mas não "file.aif".
Quando você usa 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, "file1.txt" e "file1.txtother", em um diretório, 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, usar um padrão de pesquisa de "*1*.txt" retorna "longfilename.txt" porque o formato equivalente de nome de arquivo 8.3 é "LONGFI~1.TXT".
Os EnumerateFiles métodos e os GetFiles métodos diferem da seguinte maneira: quando você usa EnumerateFiles, você pode começar a enumerar a coleção de nomes antes que toda a coleção seja retornada; quando você usa GetFiles, você deve aguardar que toda a matriz de nomes seja retornada antes de poder acessar a matriz. Portanto, quando você está trabalhando com muitos arquivos e diretórios, EnumerateFiles pode ser mais eficiente.
Os nomes de arquivo incluem o caminho completo.
O path
parâmetro pode especificar informações de caminho relativas ou absolutas. As informações do caminho relativo são interpretadas como relativas ao diretório de trabalho atual. Para obter o diretório de trabalho atual, consulte GetCurrentDirectory.
O path
parâmetro não diferencia maiúsculas de minúsculas.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.