Leer en inglés

Compartir a través de


DirectoryInfo.EnumerateFiles Método

Definición

Devuelve una colección enumerable de información de archivos del directorio actual.

Sobrecargas

EnumerateFiles()

Devuelve una colección enumerable de información de archivos del directorio actual.

EnumerateFiles(String)

Devuelve una colección enumerable de información de archivos que coincide con un modelo de búsqueda.

EnumerateFiles(String, EnumerationOptions)

Devuelve una colección enumerable de información de archivos que coincide con el modelo de búsqueda y las opciones de enumeración.

EnumerateFiles(String, SearchOption)

Devuelve una colección enumerable de información de archivos que coincide con un modelo de búsqueda y una opción de búsqueda en subdirectorios especificados.

EnumerateFiles()

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

Devuelve una colección enumerable de información de archivos del directorio actual.

C#
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles ();

Devoluciones

Colección enumerable de los archivos del directorio actual.

Excepciones

La ruta de acceso encapsulada en el objeto DirectoryInfo no es válida (por ejemplo, está en una unidad no asignada).

El llamador no dispone del permiso requerido.

Ejemplos

En el ejemplo siguiente se enumeran los archivos de un directorio especificado y se usa una consulta LINQ para devolver los nombres de todos los archivos creados antes de 2009 comprobando el valor de la CreationTimeUtc propiedad .

Si solo necesita los nombres de los archivos, use la clase estática Directory para mejorar el rendimiento. Para obtener un ejemplo, vea el Directory.EnumerateFiles(String) método .

C#
// Create a DirectoryInfo of the directory of the files to enumerate.
DirectoryInfo DirInfo = new DirectoryInfo(@"\\archives1\library\");

DateTime StartOf2009 = new DateTime(2009, 01, 01);

// LINQ query for all files created before 2009.
var files = from f in DirInfo.EnumerateFiles()
           where f.CreationTimeUtc < StartOf2009
           select f;

// Show results.
foreach (var f in files)
{
    Console.WriteLine("{0}", f.Name);
}

En el ejemplo siguiente se muestra cómo enumerar archivos en un directorio mediante diferentes opciones de búsqueda. En el ejemplo se supone un directorio que tiene archivos denominados log1.txt, log2.txt, test1.txt, test2.txt, test3.txt y un subdirectorio que tiene un archivo denominado SubFile.txt.

C#
using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.EnumerateFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.EnumerateFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.EnumerateFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/

Comentarios

Los EnumerateFiles métodos y GetFiles difieren de la siguiente manera:

  • Cuando se usa EnumerateFiles, puede empezar a enumerar la colección de objetos antes de FileInfo que se devuelva toda la colección.

  • Cuando se usa GetFiles, debe esperar a que se devuelva toda la matriz de FileInfo objetos para poder tener acceso a la matriz.

Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateFiles puede ser más eficaz.

Este método rellena previamente los valores de las siguientes FileInfo propiedades:

La colección devuelta no se almacena en caché; cada llamada al GetEnumerator método de la colección iniciará una nueva enumeración.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

EnumerateFiles(String)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

Devuelve una colección enumerable de información de archivos que coincide con un modelo de búsqueda.

C#
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern);

Parámetros

searchPattern
String

Cadena de búsqueda que debe coincidir con los nombres de los archivos. 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

Colección enumerable de archivos que coincide con searchPattern.

Excepciones

searchPattern es null.

La ruta de acceso encapsulada en el objeto DirectoryInfo no es válida (por ejemplo, está en una unidad no asignada).

El llamador no dispone del permiso requerido.

Ejemplos

En el ejemplo siguiente se muestra cómo enumerar archivos en un directorio mediante diferentes opciones de búsqueda. En el ejemplo se supone un directorio que tiene archivos denominados log1.txt, log2.txt, test1.txt, test2.txt, test3.txt y un subdirectorio que tiene un archivo denominado SubFile.txt.

C#
using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.EnumerateFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.EnumerateFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.EnumerateFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/

Comentarios

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) Cero o un carácter en esa posición.

Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la cadena "*t" busca todos los nombres al terminar con la letra "t". ". La searchPattern cadena "s*" busca todos los nombres path a partir de la letra "s".

Los EnumerateFiles métodos y GetFiles difieren de la siguiente manera:

  • Cuando se usa EnumerateFiles, puede empezar a enumerar la colección de objetos antes de FileInfo que se devuelva toda la colección.

  • Cuando se usa GetFiles, debe esperar a que se devuelva toda la matriz de FileInfo objetos para poder tener acceso a la matriz.

Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateFiles puede ser más eficaz.

Este método rellena previamente los valores de las siguientes FileInfo propiedades:

La colección devuelta no se almacena en caché; cada llamada al GetEnumerator método de la colección iniciará una nueva enumeración.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

EnumerateFiles(String, EnumerationOptions)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

Devuelve una colección enumerable de información de archivos que coincide con el modelo de búsqueda y las opciones de enumeración.

C#
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);

Parámetros

searchPattern
String

Cadena de búsqueda que debe coincidir con los nombres de los archivos. 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.

enumerationOptions
EnumerationOptions

Un objeto que describe la configuración de búsqueda y enumeración que se va a usar.

Devoluciones

Colección enumerable de archivos que coincide con searchPattern y enumerationOptions.

Excepciones

searchPattern es null.

La ruta de acceso encapsulada en el objeto DirectoryInfo no es válida (por ejemplo, está en una unidad no asignada).

El llamador no dispone del permiso requerido.

Comentarios

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) Cero o un carácter en esa posición.

Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la cadena "*t" busca todos los nombres al terminar con la letra "t". ". La searchPattern cadena "s*" busca todos los nombres path a partir de la letra "s".

Los EnumerateFiles métodos y GetFiles difieren de la siguiente manera:

  • Cuando se usa EnumerateFiles, puede empezar a enumerar la colección de objetos antes de FileInfo que se devuelva toda la colección.

  • Cuando se usa GetFiles, debe esperar a que se devuelva toda la matriz de FileInfo objetos para poder tener acceso a la matriz.

Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateFiles puede ser más eficaz.

Este método rellena previamente los valores de las siguientes FileInfo propiedades:

La colección devuelta no se almacena en caché; cada llamada al GetEnumerator método de la colección iniciará una nueva enumeración.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

EnumerateFiles(String, SearchOption)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

Devuelve una colección enumerable de información de archivos que coincide con un modelo de búsqueda y una opción de búsqueda en subdirectorios especificados.

C#
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern, System.IO.SearchOption searchOption);

Parámetros

searchPattern
String

Cadena de búsqueda que debe coincidir con los nombres de los archivos. 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 solo el directorio actual o todos los subdirectorios. El valor predeterminado es TopDirectoryOnly.

Devoluciones

Colección enumerable de archivos que coincide con searchPattern y searchOption.

Excepciones

searchPattern es null.

searchOption no es un valor SearchOption válido.

La ruta de acceso encapsulada en el objeto DirectoryInfo no es válida (por ejemplo, está en una unidad no asignada).

El llamador no dispone del permiso requerido.

Ejemplos

En el ejemplo siguiente se muestra cómo enumerar archivos en un directorio mediante diferentes opciones de búsqueda. En el ejemplo se supone un directorio que tiene archivos denominados log1.txt, log2.txt, test1.txt, test2.txt, test3.txt y un subdirectorio que tiene un archivo denominado SubFile.txt.

C#
using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.EnumerateFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.EnumerateFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.EnumerateFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/

Comentarios

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) Cero o un carácter en esa posición.

Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la cadena "*t" busca todos los nombres al terminar con la letra "t". ". La searchPattern cadena "s*" busca todos los nombres path a partir de la letra "s".

Los EnumerateFiles métodos y GetFiles difieren de la siguiente manera:

  • Cuando se usa EnumerateFiles, puede empezar a enumerar la colección de objetos antes de FileInfo que se devuelva toda la colección.

  • Cuando se usa GetFiles, debe esperar a que se devuelva toda la matriz de FileInfo objetos para poder tener acceso a la matriz.

Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateFiles puede ser más eficaz.

Este método rellena previamente los valores de las siguientes FileInfo propiedades:

La colección devuelta no se almacena en caché; cada llamada al GetEnumerator método de la colección iniciará una nueva enumeración.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0