Leer en inglés

Compartir a través de


Directory.EnumerateDirectories Método

Definición

Devuelve una colección enumerable de nombres completos de directorio que satisfacen los criterios especificados.

Sobrecargas

EnumerateDirectories(String)

Devuelve una colección enumerable de nombres completos de directorio en una ruta de acceso especificada.

EnumerateDirectories(String, String)

Devuelve una colección enumerable de nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada.

EnumerateDirectories(String, String, EnumerationOptions)

Devuelve una colección enumerable de los nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

EnumerateDirectories(String, String, SearchOption)

Devuelve una colección enumerable de nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

EnumerateDirectories(String)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Devuelve una colección enumerable de nombres completos de directorio en una ruta de acceso especificada.

C#
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path);

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 colección enumerable de nombres completos (con sus rutas de acceso) para los directorios en el directorio especificado por path.

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 caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().

path es null.

path no es válido, como hacer referencia a una unidad no asignada.

path es un nombre del archivo.

La ruta de acceso especificada, el nombre de archivo o ambos combinados superan la longitud máxima definida por el sistema.

El llamador no dispone del permiso requerido.

El llamador no dispone del permiso requerido.

Ejemplos

En el ejemplo siguiente se enumeran los directorios de nivel superior de una ruta de acceso especificada.

C#
using System;
using System.Collections.Generic;
using System.IO;

class Program
{
    private static void Main(string[] args)
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            List<string> dirs = new List<string>(Directory.EnumerateDirectories(docPath));

            foreach (var dir in dirs)
            {
                Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}");
            }
            Console.WriteLine($"{dirs.Count} directories found.");
        }
        catch (UnauthorizedAccessException ex)
        {
            Console.WriteLine(ex.Message);
        }
        catch (PathTooLongException ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}

Comentarios

Puede especificar información de ruta de acceso relativa o absoluta en el path parámetro . La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual, que puede determinar mediante el GetCurrentDirectory método . Los nombres de directorio devueltos tienen como prefijo el valor que proporcionó en el path parámetro . Por ejemplo, si proporciona una ruta de acceso relativa en el path parámetro , los nombres de directorio devueltos contendrán una ruta de acceso relativa.

Los EnumerateDirectories métodos y GetDirectories difieren de la siguiente manera: cuando se usa EnumerateDirectories, puede empezar a enumerar la colección de nombres antes de que se devuelva toda la colección; cuando se usa GetDirectories, 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, EnumerateDirectories puede ser más eficaz.

La colección devuelta no se almacena en caché; cada llamada a GetEnumerator en 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

EnumerateDirectories(String, String)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Devuelve una colección enumerable de nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada.

C#
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern);

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 directorios 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 colección enumerable de nombres completos (con sus rutas de acceso) para los directorios en el directorio especificado por path y que coinciden con el patrón de búsqueda especificado.

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 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 es null.

O bien

searchPattern es null.

path no es válido, como hacer referencia a una unidad no asignada.

path es un nombre del archivo.

La ruta de acceso especificada, el nombre de archivo o ambos combinados superan la longitud máxima definida por el sistema.

El llamador no dispone del permiso requerido.

El llamador no dispone del permiso requerido.

Ejemplos

En el ejemplo siguiente se enumeran los directorios de nivel superior de una ruta de acceso especificada que coinciden con un patrón de búsqueda especificado.

C#
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

class Program
{

    private static void Main(string[] args)
    {
        try
        {
            string dirPath = @"\\archives\2009\reports";

            // LINQ query.
            var dirs = from dir in
                     Directory.EnumerateDirectories(dirPath, "dv_*")
                       select dir;

            // Show results.
            foreach (var dir in dirs)
            {
                // Remove path information from string.
                Console.WriteLine("{0}",
                    dir.Substring(dir.LastIndexOf("\\") + 1));
            }
            Console.WriteLine("{0} directories found.",
                dirs.Count<string>().ToString());

            // Optionally create a List collection.
            List<string> workDirs = new List<string>(dirs);
        }
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}

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) 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.

Puede especificar información de ruta de acceso relativa o absoluta en el path parámetro . La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual, que puede determinar mediante el GetCurrentDirectory método . Los nombres de directorio devueltos tienen como prefijo el valor que proporcionó en el path parámetro . Por ejemplo, si proporciona una ruta de acceso relativa en el path parámetro , los nombres de directorio devueltos contendrán una ruta de acceso relativa.

Los EnumerateDirectories métodos y GetDirectories difieren de la siguiente manera: cuando se usa EnumerateDirectories, puede empezar a enumerar la colección de nombres antes de que se devuelva toda la colección; cuando se usa GetDirectories, 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, EnumerateDirectories puede ser más eficaz.

La colección devuelta no se almacena en caché; cada llamada a GetEnumerator en 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

EnumerateDirectories(String, String, EnumerationOptions)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Devuelve una colección enumerable de los nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

C#
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);

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 directorios 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.

enumerationOptions
EnumerationOptions

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

Devoluciones

Una colección enumerable de nombres completos (con sus rutas de acceso) para los directorios en el directorio especificado por path y que coinciden con el patrón de búsqueda y las opciones de enumeración especificados.

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 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.

path no es válido, como hacer referencia a una unidad no asignada.

path es un nombre del archivo.

La ruta de acceso especificada, el nombre de archivo o ambos combinados superan la longitud máxima definida por el sistema.

El llamador no dispone del permiso requerido.

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) 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.

Puede especificar información de ruta de acceso relativa o absoluta en el path parámetro . La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual, que puede determinar mediante el GetCurrentDirectory método . Los nombres de directorio devueltos tienen como prefijo el valor que proporcionó en el path parámetro . Por ejemplo, si proporciona una ruta de acceso relativa en el path parámetro , los nombres de directorio devueltos contendrán una ruta de acceso relativa.

Los EnumerateDirectories métodos y GetDirectories difieren de la siguiente manera: cuando se usa EnumerateDirectories, puede empezar a enumerar la colección de nombres antes de que se devuelva toda la colección; cuando se usa GetDirectories, debe esperar a que se devuelva toda la matriz de nombres antes de poder acceder a la matriz. Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateDirectories puede ser más eficaz.

La colección devuelta no se almacena en caché; cada llamada a GetEnumerator en 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

EnumerateDirectories(String, String, SearchOption)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Devuelve una colección enumerable de nombres completos de directorio que coinciden con un patrón de búsqueda en una ruta de acceso especificada y, opcionalmente, busca en subdirectorios.

C#
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern, System.IO.SearchOption searchOption);

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 directorios 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 solo el directorio actual o debe incluir todos los subdirectorios. El valor predeterminado es TopDirectoryOnly.

Devoluciones

Una colección enumerable de nombres completos (con sus rutas de acceso) para los directorios en el directorio especificado por path y que coinciden con el patrón de búsqueda y las opciones de búsqueda especificados.

Excepciones

Versiones de .NET Framework y .NET Core anteriores a 2.1: path es una cadena de longitud cero, solo contiene espacios en blanco o contiene 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 es null.

O bien

searchPattern es null.

searchOption no es un valor SearchOption válido.

path no es válido, como hacer referencia a una unidad no asignada.

path es un nombre del archivo.

La ruta de acceso especificada, el nombre de archivo o ambos combinados superan la longitud máxima definida por el sistema.

El llamador no dispone del permiso requerido.

El llamador no dispone del permiso requerido.

Ejemplos

En el ejemplo siguiente se enumeran los directorios de una ruta de acceso especificada que coinciden con un patrón de búsqueda especificado. Usa el searchOption parámetro para especificar que todos los subdirectorios deben incluirse en la búsqueda.

C#
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

class Program
{

    private static void Main(string[] args)
    {
        try
        {
            string dirPath = @"\\archives\2009\reports";

            // LINQ query.
            var dirs = from dir in
                     Directory.EnumerateDirectories(dirPath, "dv_*",
                        SearchOption.AllDirectories)
                       select dir;

            // Show results.
            foreach (var dir in dirs)
            {
                // Remove path information from string.
                Console.WriteLine("{0}",
                    dir.Substring(dir.LastIndexOf("\\") + 1));
            }
            Console.WriteLine("{0} directories found.",
                dirs.Count<string>().ToString());

            // Optionally create a List collection.
            List<string> workDirs = new List<string>(dirs);
        }
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}

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) 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 a path 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.

Puede especificar información de ruta de acceso relativa o absoluta en el path parámetro . La información de ruta de acceso relativa se interpreta como relativa al directorio de trabajo actual, que puede determinar mediante el GetCurrentDirectory método . Los nombres de directorio devueltos tienen como prefijo el valor que proporcionó en el path parámetro . Por ejemplo, si proporciona una ruta de acceso relativa en el path parámetro , los nombres de directorio devueltos contendrán una ruta de acceso relativa.

Los EnumerateDirectories métodos y GetDirectories difieren de la siguiente manera: cuando se usa EnumerateDirectories, puede empezar a enumerar la colección de nombres antes de que se devuelva toda la colección; cuando se usa GetDirectories, debe esperar a que se devuelva toda la matriz de nombres antes de poder acceder a la matriz. Por lo tanto, cuando se trabaja con muchos archivos y directorios, EnumerateDirectories puede ser más eficaz.

La colección devuelta no se almacena en caché; cada llamada a GetEnumerator en 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