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