DirectoryInfo.EnumerateDirectories 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 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:
Cuando se usa EnumerateDirectories, puede empezar a enumerar la colección de objetos antes de DirectoryInfo que se devuelva toda la colección.
Cuando se usa GetDirectories, debe esperar a que se devuelva toda la matriz de DirectoryInfo objetos para poder acceder a la matriz.
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:
Cuando se usa EnumerateDirectories, puede empezar a enumerar la colección de objetos antes de DirectoryInfo que se devuelva toda la colección.
Cuando se usa GetDirectories, debe esperar a que se devuelva toda la matriz de DirectoryInfo objetos para poder acceder a la matriz.
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:
Cuando se usa EnumerateDirectories, puede empezar a enumerar la colección de objetos antes de DirectoryInfo que se devuelva toda la colección.
Cuando se usa GetDirectories, debe esperar a que se devuelva toda la matriz de DirectoryInfo objetos para poder acceder a la matriz.
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:
Cuando se usa EnumerateDirectories, puede empezar a enumerar la colección de objetos antes de DirectoryInfo que se devuelva toda la colección.
Cuando se usa GetDirectories, debe esperar a que se devuelva toda la matriz de DirectoryInfo objetos para poder acceder a la matriz.
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.