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)
- Origem:
- Directory.cs
- Origem:
- Directory.cs
- Origem:
- Directory.cs
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
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.
Versões do .NET Framework e 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 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 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, 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 retornados são acrescentados ao parâmetro fornecido path
.
Esse método é idêntico ao GetFiles(String, String) com o 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.
A diferenciação de maiúsculas e minúsculas do path
parâmetro corresponde à do sistema de arquivos no qual o código está em execução. Por exemplo, não diferencia maiúsculas de minúsculas no NTFS (o sistema de arquivos padrão do Windows) e diferencia maiúsculas de minúsculas em sistemas de arquivos Linux.
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)
- Origem:
- Directory.cs
- Origem:
- Directory.cs
- Origem:
- Directory.cs
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
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.
Versões do .NET Framework e 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).
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 cadeia searchPattern
de caracteres "*t" pesquisa todos os nomes ao path
terminar com a letra "t". A searchPattern
cadeia de caracteres "s*" procura 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 por DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars.
Observação
Somente .NET Framework: Quando você usa o caractere curinga asterisco em searchPattern
e especifica uma extensão de arquivo de três caracteres, por exemplo, "*.txt", esse método também retorna arquivos com extensões que começam com a extensão especificada. Por exemplo, o padrão de pesquisa "*.xls" retorna "book.xls" e "book.xlsx". Esse comportamento só ocorrerá se um asterisco for usado no padrão de pesquisa e a extensão de arquivo fornecida for exatamente três caracteres. Se você usar o caractere curinga de ponto de interrogação em algum lugar no padrão de pesquisa, esse método retornará apenas os arquivos que correspondem exatamente à extensão de arquivo especificada. A tabela a seguir ilustra essa anomalia no .NET Framework.
Arquivos no diretório | Padrão de pesquisa | .NET 5+ retorna | .NET Framework retorna |
---|---|---|---|
file.ai, file.aif | *.ai | file.ai | file.ai |
book.xls, book.xlsx | *.xls | book.xls | book.xls, book.xlsx |
ello.txt, hello.txt, hello.txtt | ?ello.txt | olá.txt | olá.txt |
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 "*1*.txt" retorna "longfilename.txt" porque o formato de nome de arquivo 8.3 equivalente é "LONGFI~1.TXT".
Os EnumerateFiles métodos e GetFiles 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, 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.
A diferenciação de maiúsculas e minúsculas do path
parâmetro corresponde à do sistema de arquivos no qual o código está em execução. Por exemplo, não diferencia maiúsculas de minúsculas no NTFS (o sistema de arquivos padrão do Windows) e diferencia maiúsculas de minúsculas em sistemas de arquivos Linux.
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)
- Origem:
- Directory.cs
- Origem:
- Directory.cs
- Origem:
- Directory.cs
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 arquivos 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
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.
Versões do .NET Framework e 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 por DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars.
Observação
Somente .NET Framework: Quando você usa o caractere curinga asterisco em searchPattern
e especifica uma extensão de arquivo de três caracteres, por exemplo, "*.txt", esse método também retorna arquivos com extensões que começam com a extensão especificada. Por exemplo, o padrão de pesquisa "*.xls" retorna "book.xls" e "book.xlsx". Esse comportamento só ocorrerá se um asterisco for usado no padrão de pesquisa e a extensão de arquivo fornecida for exatamente três caracteres. Se você usar o caractere curinga de ponto de interrogação em algum lugar no padrão de pesquisa, esse método retornará apenas os arquivos que correspondem exatamente à extensão de arquivo especificada. A tabela a seguir ilustra essa anomalia no .NET Framework.
Arquivos no diretório | Padrão de pesquisa | .NET 5+ retorna | .NET Framework retorna |
---|---|---|---|
file.ai, file.aif | *.ai | file.ai | file.ai |
book.xls, book.xlsx | *.xls | book.xls | book.xls, book.xlsx |
ello.txt, hello.txt, hello.txtt | ?ello.txt | olá.txt | olá.txt |
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 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, 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.
A diferenciação de maiúsculas e minúsculas do path
parâmetro corresponde à do sistema de arquivos no qual o código está em execução. Por exemplo, não diferencia maiúsculas de minúsculas no NTFS (o sistema de arquivos padrão do Windows) e diferencia maiúsculas de minúsculas em sistemas de arquivos Linux.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Aplica-se a
GetFiles(String, String, SearchOption)
- Origem:
- Directory.cs
- Origem:
- Directory.cs
- Origem:
- Directory.cs
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
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
Versões do .NET Framework e 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 por DirectorySeparatorChar ou AltDirectorySeparatorChar, nem pode conter caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars.
Observação
Somente .NET Framework: Quando você usa o caractere curinga asterisco em searchPattern
e especifica uma extensão de arquivo de três caracteres, por exemplo, "*.txt", esse método também retorna arquivos com extensões que começam com a extensão especificada. Por exemplo, o padrão de pesquisa "*.xls" retorna "book.xls" e "book.xlsx". Esse comportamento só ocorrerá se um asterisco for usado no padrão de pesquisa e a extensão de arquivo fornecida for exatamente três caracteres. Se você usar o caractere curinga de ponto de interrogação em algum lugar no padrão de pesquisa, esse método retornará apenas os arquivos que correspondem exatamente à extensão de arquivo especificada. A tabela a seguir ilustra essa anomalia no .NET Framework.
Arquivos no diretório | Padrão de pesquisa | .NET 5+ retorna | .NET Framework retorna |
---|---|---|---|
file.ai, file.aif | *.ai | file.ai | file.ai |
book.xls, book.xlsx | *.xls | book.xls | book.xls, book.xlsx |
ello.txt, hello.txt, hello.txtt | ?ello.txt | olá.txt | olá.txt |
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 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, 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.
A diferenciação de maiúsculas e minúsculas do path
parâmetro corresponde à do sistema de arquivos no qual o código está em execução. Por exemplo, não diferencia maiúsculas de minúsculas no NTFS (o sistema de arquivos padrão do Windows) e diferencia maiúsculas de minúsculas em sistemas de arquivos Linux.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.