Directory.GetFiles Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve los nombres de los archivos que cumplen los criterios especificados.
Sobrecargas
GetFiles(String) |
Devuelve los nombres de archivo (con sus rutas de acceso) del directorio especificado. |
GetFiles(String, String) |
Devuelve los nombres de los archivos (con sus rutas de acceso) que coinciden con el patrón de búsqueda especificado en el directorio especificado. |
GetFiles(String, String, EnumerationOptions) |
Devuelve los nombres de los archivos (con sus rutas de acceso) que coinciden con el patrón de búsqueda y las opciones de enumeración especificados en el directorio especificado. |
GetFiles(String, String, SearchOption) |
Devuelve los nombres de los archivos (con sus rutas de acceso) que coincidan con el patrón de búsqueda especificado en el directorio especificado, utilizando un valor para determinar si se debe buscar en los subdirectorios. |
GetFiles(String)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Devuelve los nombres de archivo (con sus rutas de acceso) del directorio 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
La ruta de acceso absoluta o relativa al directorio que se va a buscar. Esta cadena no distingue entre mayúsculas y minúsculas.
Devoluciones
Una matriz de los nombres completos (con sus rutas de acceso) para los archivos en el directorio especificado, o una matriz vacía si no se encuentran archivos.
Excepciones
El llamador no dispone del permiso requerido.
Versiones de .NET Framework y .NET Core anteriores a 2.1: path
es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().
path
es null
.
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
La ruta de acceso especificada no se encuentra o no es válida (por ejemplo, está en una unidad no asignada).
Ejemplos
En el ejemplo siguiente se muestra cómo usar el GetFiles método para devolver nombres de archivo desde una ubicación especificada por el usuario. El ejemplo está configurado para detectar todos los errores comunes a este 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
Comentarios
Los EnumerateFiles métodos y GetFiles difieren de la siguiente manera: cuando se usa EnumerateFiles, puede empezar a enumerar la colección de nombres antes de que se devuelva toda la colección; cuando se usa GetFiles, debe esperar a que se devuelva toda la matriz de nombres para poder tener acceso a la matriz. Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateFiles puede ser más eficaz.
Los nombres de archivo devueltos se anexan al parámetro proporcionado path
.
Este método es idéntico al del asterisco GetFiles(String, String) (*) especificado como patrón de búsqueda.
El path
parámetro puede especificar información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.
No se garantiza el orden de los nombres de archivo devueltos; use el Sort método si se requiere un criterio de ordenación específico.
La distinción entre mayúsculas y minúsculas del path
parámetro corresponde a la del sistema de archivos en el que se ejecuta el código. Por ejemplo, no distingue mayúsculas de minúsculas en NTFS (el sistema de archivos de Windows predeterminado) y distingue mayúsculas de minúsculas en sistemas de archivos Linux.
Para obtener una lista de las tareas de E/S comunes, consulte Tareas de E/S comunes.
Consulte también
Se aplica a
GetFiles(String, String)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Devuelve los nombres de los archivos (con sus rutas de acceso) que coinciden con el patrón de búsqueda especificado en el directorio 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
La ruta de acceso absoluta o relativa al directorio que se va a buscar. Esta cadena no distingue entre mayúsculas y minúsculas.
- searchPattern
- String
Cadena de búsqueda que debe coincidir con los nombres de los archivos de path
. Este parámetro puede contener una combinación de ruta de acceso literal válida y caracteres comodín (* y ?), pero no admite expresiones regulares.
Devoluciones
Una matriz de nombres completos (con sus rutas de acceso) para los archivos del directorio especificado que coinciden con el patrón de búsqueda especificado, o una matriz vacía si no se encuentra ningún archivo.
Excepciones
El llamador no dispone del permiso requerido.
Versiones de .NET Framework y .NET Core anteriores a 2.1: path
es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos usando GetInvalidPathChars().
O bien
searchPattern
no contiene un patrón válido.
path
o searchPattern
es null
.
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
La ruta de acceso especificada no se encuentra o no es válida (por ejemplo, está en una unidad no asignada).
Ejemplos
En el ejemplo siguiente se cuenta el número de archivos que comienzan por la 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
Comentarios
Los nombres de archivo devueltos se anexan al parámetro proporcionado path
y no se garantiza el orden de los nombres de archivo devueltos; use el Sort método si se requiere un criterio de ordenación específico.
searchPattern
puede ser una combinación de caracteres literales y comodín, pero no admite expresiones regulares. Los siguientes especificadores de caracteres comodín se permiten en searchPattern
.
Especificador de caracteres comodín | Coincide |
---|---|
* (asterisco) | Cero o más caracteres en esa posición. |
? (signo de interrogación) | Exactamente un carácter en esa posición. |
Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la searchPattern
cadena "*t" busca todos los nombres al path
terminar con la letra "t". La searchPattern
cadena "s*" busca todos los nombres path
a partir de la letra "s".
searchPattern
no puede terminar en dos puntos ("..") ni contener dos puntos ("..") seguidos de DirectorySeparatorChar o AltDirectorySeparatorChar, ni puede contener caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars.
Nota
Solo .NET Framework: Cuando se usa el carácter comodín de asterisco en searchPattern
y se especifica una extensión de archivo de tres caracteres, por ejemplo, "*.txt", este método también devuelve archivos con extensiones que comienzan por la extensión especificada. Por ejemplo, el patrón de búsqueda "*.xls" devuelve "book.xls" y "book.xlsx". Este comportamiento solo se produce si se usa un asterisco en el patrón de búsqueda y la extensión de archivo proporcionada es exactamente tres caracteres. Si usa el carácter comodín de signo de interrogación en algún lugar del patrón de búsqueda, este método devuelve solo los archivos que coinciden exactamente con la extensión de archivo especificada. En la tabla siguiente se muestra esta anomalía en .NET Framework.
Archivos en el directorio | Patrón de búsqueda | Devuelve .NET 5+ | Devuelve .NET Framework |
---|---|---|---|
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 | hello.txt | hello.txt |
Nota
Dado que este método comprueba los nombres de archivo con el formato de nombre de archivo 8.3 y el formato de nombre de archivo largo, un patrón de búsqueda similar a "*1*.txt" puede devolver nombres de archivo inesperados. Por ejemplo, el uso de un patrón de búsqueda de "*1*.txt" devuelve "longfilename.txt" porque el formato de nombre de archivo 8.3 equivalente es "LONGFI~1.TXT".
Los EnumerateFiles métodos y GetFiles difieren de la siguiente manera: cuando se usa EnumerateFiles, puede empezar a enumerar la colección de nombres antes de que se devuelva toda la colección; cuando se usa GetFiles, debe esperar a que se devuelva toda la matriz de nombres para poder tener acceso a la matriz. Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateFiles puede ser más eficaz.
El path
parámetro puede especificar información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.
La distinción entre mayúsculas y minúsculas del path
parámetro corresponde a la del sistema de archivos en el que se ejecuta el código. Por ejemplo, no distingue mayúsculas de minúsculas en NTFS (el sistema de archivos de Windows predeterminado) y distingue mayúsculas de minúsculas en sistemas de archivos Linux.
Para obtener una lista de las tareas de E/S comunes, consulte Tareas de E/S comunes.
Consulte también
Se aplica a
GetFiles(String, String, EnumerationOptions)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Devuelve los nombres de los archivos (con sus rutas de acceso) que coinciden con el patrón de búsqueda y las opciones de enumeración especificados en el directorio 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
La ruta de acceso absoluta o relativa al directorio que se va a buscar. Esta cadena no distingue entre mayúsculas y minúsculas.
- searchPattern
- String
Cadena de búsqueda que debe coincidir con los nombres de los archivos de path
. Este parámetro puede contener una combinación de literales válidos y caracteres comodín, pero no admite expresiones regulares.
- enumerationOptions
- EnumerationOptions
Un objeto que describe la configuración de búsqueda y enumeración que se va a usar.
Devoluciones
Matriz de nombres completos (con sus rutas de acceso) para los archivos del directorio especificado que coinciden con el patrón de búsqueda y las opciones de enumeración especificados, o bien una matriz vacía si no se encuentra ningún archivo.
Excepciones
El llamador no dispone del permiso requerido.
Versiones de .NET Framework y .NET Core anteriores a 2.1: path
es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos usando GetInvalidPathChars().
O bien
searchPattern
no contiene un patrón válido.
path
o searchPattern
es null
.
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
La ruta de acceso especificada no se encuentra o no es válida (por ejemplo, está en una unidad no asignada).
Comentarios
Los nombres de archivo devueltos se anexan al parámetro proporcionado path
y no se garantiza el orden de los nombres de archivo devueltos; use el Sort método si se requiere un criterio de ordenación específico.
searchPattern
puede ser una combinación de caracteres literales y comodín, pero no admite expresiones regulares. Los siguientes especificadores de caracteres comodín se permiten en searchPattern
.
Especificador de caracteres comodín | Coincide |
---|---|
* (asterisco) | Cero o más caracteres en esa posición. |
? (signo de interrogación) | Exactamente un carácter en esa posición. |
Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la searchPattern
cadena "*t" busca todos los nombres al path
terminar con la letra "t". La searchPattern
cadena "s*" busca todos los nombres path
a partir de la letra "s".
searchPattern
no puede terminar en dos puntos ("..") ni contener dos puntos ("..") seguidos de DirectorySeparatorChar o AltDirectorySeparatorChar, ni puede contener caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars.
Nota
Solo .NET Framework: Cuando se usa el carácter comodín de asterisco en searchPattern
y se especifica una extensión de archivo de tres caracteres, por ejemplo, "*.txt", este método también devuelve archivos con extensiones que comienzan por la extensión especificada. Por ejemplo, el patrón de búsqueda "*.xls" devuelve "book.xls" y "book.xlsx". Este comportamiento solo se produce si se usa un asterisco en el patrón de búsqueda y la extensión de archivo proporcionada es exactamente tres caracteres. Si usa el carácter comodín de signo de interrogación en algún lugar del patrón de búsqueda, este método devuelve solo los archivos que coinciden exactamente con la extensión de archivo especificada. En la tabla siguiente se muestra esta anomalía en .NET Framework.
Archivos en el directorio | Patrón de búsqueda | Devuelve .NET 5+ | Devuelve .NET Framework |
---|---|---|---|
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 | hello.txt | hello.txt |
Nota
Dado que este método comprueba los nombres de archivo con el formato de nombre de archivo 8.3 y el formato de nombre de archivo largo, un patrón de búsqueda similar a "*1*.txt" puede devolver nombres de archivo inesperados. Por ejemplo, el uso de un patrón de búsqueda de "*1*.txt" devuelve "longfilename.txt" porque el formato de nombre de archivo 8.3 equivalente es "LONGFI~1.TXT".
Los EnumerateFiles métodos y GetFiles difieren de la siguiente manera: cuando se usa EnumerateFiles, puede empezar a enumerar la colección de nombres antes de que se devuelva toda la colección; cuando se usa GetFiles, debe esperar a que se devuelva toda la matriz de nombres para poder tener acceso a la matriz. Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateFiles puede ser más eficaz.
El path
parámetro puede especificar información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.
La distinción entre mayúsculas y minúsculas del path
parámetro corresponde a la del sistema de archivos en el que se ejecuta el código. Por ejemplo, no distingue mayúsculas de minúsculas en NTFS (el sistema de archivos de Windows predeterminado) y distingue mayúsculas de minúsculas en sistemas de archivos Linux.
Para obtener una lista de las tareas de E/S comunes, consulte Tareas de E/S comunes.
Se aplica a
GetFiles(String, String, SearchOption)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Devuelve los nombres de los archivos (con sus rutas de acceso) que coincidan con el patrón de búsqueda especificado en el directorio especificado, utilizando un valor para determinar si se debe buscar en los subdirectorios.
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
La ruta de acceso absoluta o relativa al directorio que se va a buscar. Esta cadena no distingue entre mayúsculas y minúsculas.
- searchPattern
- String
Cadena de búsqueda que debe coincidir con los nombres de los archivos de path
. Este parámetro puede contener una combinación de ruta de acceso literal válida y caracteres comodín (* y ?), pero no admite expresiones regulares.
- searchOption
- SearchOption
Uno de los valores de enumeración que especifica si la operación de búsqueda debe incluir todos los subdirectorios o solo el directorio actual.
Devoluciones
Una matriz de nombres completos (con sus rutas de acceso) para los archivos del directorio especificado que coinciden con el patrón de búsqueda y opción especificados, o una matriz vacía si no se encuentra ningún archivo.
Excepciones
Versiones de .NET Framework y .NET Core anteriores a 2.1: path
es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().
O bien
searchPattern
no contiene un patrón válido.
path
o searchpattern
es null
.
searchOption
no es un valor SearchOption válido.
El llamador no dispone del permiso requerido.
La ruta de acceso especificada no se encuentra o no es válida (por ejemplo, está en una unidad no asignada).
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
Comentarios
Los nombres de archivo devueltos se anexan al parámetro path
proporcionado y no se garantiza el orden de los nombres de archivo devueltos; use el Sort método si se requiere un criterio de ordenación específico.
searchPattern
puede ser una combinación de caracteres literales y comodín, pero no admite expresiones regulares. Los siguientes especificadores de caracteres comodín se permiten en searchPattern
.
Especificador de caracteres comodín | Coincide |
---|---|
* (asterisco) | Cero o más caracteres en esa posición. |
? (signo de interrogación) | Exactamente un carácter en esa posición. |
Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la searchPattern
cadena "*t" busca todos los nombres al path
terminar con la letra "t". La searchPattern
cadena "s*" busca todos los nombres path
a partir de la letra "s".
searchPattern
no puede terminar en dos puntos ("..") ni contener dos puntos ("..") seguidos de DirectorySeparatorChar o AltDirectorySeparatorChar, ni puede contener caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars.
Nota
Solo .NET Framework: Cuando se usa el carácter comodín de asterisco en searchPattern
y se especifica una extensión de archivo de tres caracteres, por ejemplo, "*.txt", este método también devuelve archivos con extensiones que comienzan por la extensión especificada. Por ejemplo, el patrón de búsqueda "*.xls" devuelve "book.xls" y "book.xlsx". Este comportamiento solo se produce si se usa un asterisco en el patrón de búsqueda y la extensión de archivo proporcionada es exactamente tres caracteres. Si usa el carácter comodín de signo de interrogación en algún lugar del patrón de búsqueda, este método devuelve solo los archivos que coinciden exactamente con la extensión de archivo especificada. En la tabla siguiente se muestra esta anomalía en .NET Framework.
Archivos en el directorio | Patrón de búsqueda | Devuelve .NET 5+ | Devuelve .NET Framework |
---|---|---|---|
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 | hello.txt | hello.txt |
Nota
Dado que este método comprueba los nombres de archivo con el formato de nombre de archivo 8.3 y el formato de nombre de archivo largo, un patrón de búsqueda similar a "*1*.txt" puede devolver nombres de archivo inesperados. Por ejemplo, el uso de un patrón de búsqueda de "*1*.txt" devuelve "longfilename.txt" porque el formato de nombre de archivo 8.3 equivalente es "LONGFI~1.TXT".
Los EnumerateFiles métodos y GetFiles difieren de la siguiente manera: cuando se usa EnumerateFiles, puede empezar a enumerar la colección de nombres antes de que se devuelva toda la colección; cuando se usa GetFiles, debe esperar a que se devuelva toda la matriz de nombres para poder tener acceso a la matriz. Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateFiles puede ser más eficaz.
Los nombres de archivo incluyen la ruta de acceso completa.
El path
parámetro puede especificar información de ruta de acceso relativa o absoluta. La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual. Para obtener el directorio de trabajo actual, consulte GetCurrentDirectory.
La distinción entre mayúsculas y minúsculas del path
parámetro corresponde a la del sistema de archivos en el que se ejecuta el código. Por ejemplo, no distingue mayúsculas de minúsculas en NTFS (el sistema de archivos de Windows predeterminado) y distingue mayúsculas de minúsculas en sistemas de archivos Linux.
Para obtener una lista de las tareas de E/S comunes, consulte Tareas de E/S comunes.