Compartir a través de


DirectoryInfo.EnumerateDirectories Método

Definición

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

Sobrecargas

EnumerateDirectories(String, SearchOption)

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

EnumerateDirectories(String, EnumerationOptions)

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

EnumerateDirectories()

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

EnumerateDirectories(String)

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

EnumerateDirectories(String, SearchOption)

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

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

public:
 System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern, System.IO.SearchOption searchOption);
member this.EnumerateDirectories : string * System.IO.SearchOption -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String, searchOption As SearchOption) As IEnumerable(Of DirectoryInfo)

Parámetros

searchPattern
String

Cadena de búsqueda que debe coincidir con los nombres de los directorios. 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 directorios 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 usa este método y el EnumerateFiles método para enumerar los archivos y directorios dentro del directorio start y mostrar el nombre y el tamaño de los archivos de más de 10 MB.

using System;
using System.IO;

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

        DirectoryInfo diTop = new DirectoryInfo(docPath);

        try
        {
            foreach (var fi in diTop.EnumerateFiles())
            {
                try
                {
                    // Display each file over 10 MB.
                    if (fi.Length > 10000000)
                    {
                        Console.WriteLine($"{fi.FullName}\t\t{fi.Length:N0}");
                    }
                }
                catch (UnauthorizedAccessException unAuthTop)
                {
                    Console.WriteLine($"{unAuthTop.Message}");
                }
            }

            foreach (var di in diTop.EnumerateDirectories("*"))
            {
                try
                {
                    foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
                    {
                        try
                        {
                            // Display each file over 10 MB.
                            if (fi.Length > 10000000)
                            {
                                Console.WriteLine($"{fi.FullName}\t\t{fi.Length:N0}");
                            }
                        }
                        catch (UnauthorizedAccessException unAuthFile)
                        {
                            Console.WriteLine($"unAuthFile: {unAuthFile.Message}");
                        }
                    }
                }
                catch (UnauthorizedAccessException unAuthSubDir)
                {
                    Console.WriteLine($"unAuthSubDir: {unAuthSubDir.Message}");
                }
            }
        }
        catch (DirectoryNotFoundException dirNotFound)
        {
            Console.WriteLine($"{dirNotFound.Message}");
        }
        catch (UnauthorizedAccessException unAuthDir)
        {
            Console.WriteLine($"unAuthDir: {unAuthDir.Message}");
        }
        catch (PathTooLongException longPath)
        {
            Console.WriteLine($"{longPath.Message}");
        }
    }
}
open System
open System.IO

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

let diTop = DirectoryInfo docPath

try
    for fi in diTop.EnumerateFiles() do
        try
            // Display each file over 10 MB.
            if fi.Length > 10000000 then
                printfn $"{fi.FullName}\t\t{fi.Length:N0}"
        with :? UnauthorizedAccessException as unAuthTop ->
            printfn $"{unAuthTop.Message}"

    for di in diTop.EnumerateDirectories "*" do
        try
            for fi in di.EnumerateFiles("*", SearchOption.AllDirectories) do
                try
                    // Display each file over 10 MB.
                    if fi.Length > 10000000 then
                        printfn $"{fi.FullName}\t\t{fi.Length:N0}"
                with :? UnauthorizedAccessException as unAuthFile ->
                    printfn $"unAuthFile: {unAuthFile.Message}"
        with :? UnauthorizedAccessException as unAuthSubDir ->
            printfn $"unAuthSubDir: {unAuthSubDir.Message}"
with
| :? DirectoryNotFoundException as dirNotFound ->
    Console.WriteLine($"{dirNotFound.Message}")
| :? UnauthorizedAccessException as unAuthDir ->
    printfn $"unAuthDir: {unAuthDir.Message}"
| :? PathTooLongException as longPath ->
    printfn $"{longPath.Message}"
Imports System.IO

Class Program
    Public Shared Sub Main(ByVal args As String())
        Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
        Dim diTop As New DirectoryInfo(dirPath)
        Try
            For Each fi In diTop.EnumerateFiles()
                Try
                    ' Display each file over 10 MB;
                    If fi.Length > 10000000 Then
                        Console.WriteLine("{0}" & vbTab & vbTab & "{1}", fi.FullName, fi.Length.ToString("N0"))
                    End If
                Catch unAuthTop As UnauthorizedAccessException
                    Console.WriteLine($"{unAuthTop.Message}")
                End Try
            Next

            For Each di In diTop.EnumerateDirectories("*")
                Try
                    For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
                        Try
                            ' // Display each file over 10 MB;
                            If fi.Length > 10000000 Then
                                Console.WriteLine("{0}" & vbTab &
                                vbTab & "{1}", fi.FullName, fi.Length.ToString("N0"))
                            End If
                        Catch unAuthFile As UnauthorizedAccessException
                            Console.WriteLine($"unAuthFile: {unAuthFile.Message}")
                        End Try
                    Next
                Catch unAuthSubDir As UnauthorizedAccessException
                    Console.WriteLine($"unAuthSubDir: {unAuthSubDir.Message}")
                End Try
            Next
        Catch dirNotFound As DirectoryNotFoundException
            Console.WriteLine($"{dirNotFound.Message}")
        Catch unAuthDir As UnauthorizedAccessException
            Console.WriteLine($"unAuthDir: {unAuthDir.Message}")
        Catch longPath As PathTooLongException
            Console.WriteLine($"{longPath.Message}")
        End Try
    End Sub
End Class

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 a path partir de la letra "s".

Los EnumerateDirectories métodos y GetDirectories difieren de la siguiente manera:

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

Este método rellena previamente los valores de las siguientes DirectoryInfo 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

EnumerateDirectories(String, EnumerationOptions)

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

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

public:
 System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.EnumerateDirectories : string * System.IO.EnumerationOptions -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of DirectoryInfo)

Parámetros

searchPattern
String

Cadena de búsqueda que debe coincidir con los nombres de los directorios. 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 directorios 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 a path partir de la letra "s".

Los EnumerateDirectories métodos y GetDirectories difieren de la siguiente manera:

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

Este método rellena previamente los valores de las siguientes DirectoryInfo 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

EnumerateDirectories()

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

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

public:
 System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories();
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories ();
member this.EnumerateDirectories : unit -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories () As IEnumerable(Of DirectoryInfo)

Devoluciones

Colección enumerable de directorios 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 subdirectorios en el directorio C:\Archivos de programa y se usa una consulta LINQ para devolver los nombres de todos los directorios creados antes de 2009 comprobando el valor de la CreationTimeUtc propiedad .

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

using System;
using System.IO;

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

            DirectoryInfo dirPrograms = new DirectoryInfo(docPath);
            DateTime StartOf2009 = new DateTime(2009, 01, 01);

            var dirs = from dir in dirPrograms.EnumerateDirectories()
            where dir.CreationTimeUtc > StartOf2009
            select new
            {
                ProgDir = dir,
            };

            foreach (var di in dirs)
            {
                Console.WriteLine($"{di.ProgDir.Name}");
            }
        }
    }
}
// </Snippet1>
module program

// <Snippet1>
open System
open System.IO

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

let dirPrograms = DirectoryInfo docPath
let startOf2009 = DateTime(2009, 01, 01)

let dirs =
    query {
        for dir in dirPrograms.EnumerateDirectories() do
        where (dir.CreationTimeUtc > startOf2009)
        select {| ProgDir = dir |}
    }

for di in dirs do
    printfn $"{di.ProgDir.Name}"
// </Snippet1>
Imports System.IO

Module Module1

    Sub Main()

        Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
        Dim dirPrograms As New DirectoryInfo(dirPath)
        Dim StartOf2009 As New DateTime(2009, 1, 1)

        Dim dirs = From dir In dirPrograms.EnumerateDirectories()
                   Where dir.CreationTimeUtc > StartOf2009

        For Each di As DirectoryInfo In dirs
            Console.WriteLine("{0}", di.Name)
        Next

    End Sub

End Module

Comentarios

Los EnumerateDirectories métodos y GetDirectories difieren de la siguiente manera:

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

Este método rellena previamente los valores de las siguientes DirectoryInfo 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

EnumerateDirectories(String)

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

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

public:
 System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern);
member this.EnumerateDirectories : string -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String) As IEnumerable(Of DirectoryInfo)

Parámetros

searchPattern
String

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

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 a path partir de la letra "s".

Los EnumerateDirectories métodos y GetDirectories difieren de la siguiente manera:

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

Este método rellena previamente los valores de las siguientes DirectoryInfo 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