Compartir vía


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.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path);
static member EnumerateDirectories : string -> seq<string>
Public Shared Function EnumerateDirectories (path As String) As IEnumerable(Of 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 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.

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);
        }
    }
}
open System
open System.IO

try
    // Set a variable to the My Documents path.
    let docPath = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments

    let dirs = Directory.EnumerateDirectories docPath |> Seq.toList

    for dir in dirs do
        printfn $"{dir.Substring(dir.LastIndexOf Path.DirectorySeparatorChar + 1)}"
    printfn $"{dirs.Length} directories found."

with
| :? UnauthorizedAccessException as ex ->
    printfn $"{ex.Message}"
| :? PathTooLongException as ex ->
    printfn $"{ex.Message}"
Imports System.Collections.Generic
Imports System.IO

Module Module1

    Sub Main()
        Try
            Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

            Dim dirs As List(Of String) = New List(Of String)(Directory.EnumerateDirectories(dirPath))

            For Each folder In dirs
                Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}")
            Next
            Console.WriteLine($"{dirs.Count} directories found.")
        Catch ex As UnauthorizedAccessException
            Console.WriteLine(ex.Message)
        Catch ex As PathTooLongException
            Console.WriteLine(ex.Message)
        End Try

    End Sub
End Module

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

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.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern);
static member EnumerateDirectories : string * string -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String) As IEnumerable(Of 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 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.

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);
        }
    }
}
open System
open System.IO

try
    let dirPath = @"\\archives\2009\reports"

    let dirs = 
        Directory.EnumerateDirectories(dirPath, "dv_*")
        |> Seq.cache

    // Show results.
    for dir in dirs do
        // Remove path information from string.
        printfn $"{dir.Substring(dir.LastIndexOf '\\' + 1)}"
    printfn $"{Seq.length dirs} directories found."

    // Optionally create a list collection.
    let workDirs = Seq.toList dirs
    ()
    
with 
| :? UnauthorizedAccessException as uaEx ->
    printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
    printfn $"{pathEx.Message}"
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            Dim dirPath As String = "\\archives\2009\reports"

            ' LINQ query.
            Dim dirs = From folder In _
                Directory.EnumerateDirectories(dirPath, "dv_*")
            For Each folder In dirs
                ' Remove path infomration from string.
                Console.WriteLine("{0}", _
                        folder.Substring(folder.LastIndexOf("\") + 1))
            Next
            Console.WriteLine("{0} directories found.", _
                dirs.Count.ToString())

            ' Optionally create a List collection.
            Dim workDirs As List(Of String) = New List(Of String)

        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub
End Module

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

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.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateDirectories : string * string * System.IO.EnumerationOptions -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of 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 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

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.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateDirectories : string * string * System.IO.SearchOption -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String, searchOption As SearchOption) As IEnumerable(Of 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 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.

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);
        }
    }
}
open System
open System.IO

try
    let dirPath = @"\\archives\2009\reports"

    let dirs =
        Directory.EnumerateDirectories(dirPath, "dv_*", SearchOption.AllDirectories)
        |> Seq.cache

    // Show results.
    for dir in dirs do
        // Remove path information from string.
        printfn $"{dir.Substring(dir.LastIndexOf '\\' + 1)}"
    printfn $"{Seq.length dirs} directories found."

    // Optionally create a List collection.
    let workDirs = Seq.toList dirs
    ()

with 
| :? UnauthorizedAccessException as uaEx ->
    printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
    printfn $"{pathEx.Message}"
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            Dim dirPath As String = "\\archives\2009\reports"

            ' LINQ query.
            Dim dirs = From folder In _
                Directory.EnumerateDirectories(dirPath, "dv_*", _
                    SearchOption.AllDirectories)
            For Each folder In dirs
                ' Remove path infomration from string.
                Console.WriteLine("{0}", _
                        folder.Substring(folder.LastIndexOf("\") + 1))
            Next
            Console.WriteLine("{0} directories found.", _
                dirs.Count.ToString())

            ' Optionally create a List collection.
            Dim workDirs As List(Of String) = New List(Of String)

        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub
End Module

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