Directory.EnumerateDirectories Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce una raccolta enumerabile di nomi completi della directory che soddisfano i criteri specificati.
Overload
| Nome | Descrizione |
|---|---|
| EnumerateDirectories(String) |
Restituisce una raccolta enumerabile di nomi completi della directory in un percorso specificato. |
| EnumerateDirectories(String, String) |
Restituisce una raccolta enumerabile di nomi completi della directory che corrispondono a un criterio di ricerca in un percorso specificato. |
| EnumerateDirectories(String, String, EnumerationOptions) |
Restituisce un insieme enumerabile dei nomi completi della directory che corrispondono a un criterio di ricerca in un percorso specificato e, facoltativamente, cerca nelle sottodirectory. |
| EnumerateDirectories(String, String, SearchOption) |
Restituisce una raccolta enumerabile di nomi completi della directory che corrispondono a un criterio di ricerca in un percorso specificato e, facoltativamente, cerca nelle sottodirectory. |
EnumerateDirectories(String)
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
Restituisce una raccolta enumerabile di nomi completi della directory in un percorso specificato.
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)
Parametri
- path
- String
Percorso relativo o assoluto della directory in cui eseguire la ricerca. Questa stringa non fa distinzione tra maiuscole e minuscole.
Valori restituiti
Raccolta enumerabile dei nomi completi (inclusi i percorsi) per le directory nella directory specificata da path.
Eccezioni
.NET Framework e .NET versioni core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene caratteri non validi. È possibile eseguire una query per individuare caratteri non validi usando il metodo GetInvalidPathChars().
path è null.
path non è valido, ad esempio il riferimento a un'unità non mappata.
path è un nome di file.
Il percorso, il nome file o la combinazione specificati superano la lunghezza massima definita dal sistema.
Il chiamante non dispone dell'autorizzazione richiesta.
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
Nell'esempio seguente vengono enumerate le directory di primo livello in un percorso specificato.
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
Commenti
È possibile specificare informazioni relative o assolute sul path percorso nel parametro . Le informazioni sul percorso relative vengono interpretate come relative alla directory di lavoro corrente, che è possibile determinare usando il GetCurrentDirectory metodo . I nomi di directory restituiti sono preceduti dal valore specificato nel path parametro . Ad esempio, se si specifica un percorso relativo nel path parametro , i nomi di directory restituiti conterranno un percorso relativo.
I EnumerateDirectories metodi e GetDirectories differiscono come segue: quando si utilizza EnumerateDirectories, è possibile iniziare a enumerare la raccolta di nomi prima che venga restituita l'intera raccolta. Quando si utilizza GetDirectories, è necessario attendere che venga restituita l'intera matrice di nomi prima di poter accedere alla matrice. Pertanto, quando si lavora con molti file e directory, EnumerateDirectories può essere più efficiente.
La raccolta restituita non viene memorizzata nella cache; ogni chiamata a nella GetEnumerator raccolta avvierà una nuova enumerazione.
Si applica a
EnumerateDirectories(String, String)
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
Restituisce una raccolta enumerabile di nomi completi della directory che corrispondono a un criterio di ricerca in un percorso specificato.
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)
Parametri
- path
- String
Percorso relativo o assoluto della directory in cui eseguire la ricerca. Questa stringa non fa distinzione tra maiuscole e minuscole.
- searchPattern
- String
Stringa di ricerca che deve corrispondere ai nomi delle directory in path. Questo parametro può contenere una combinazione di caratteri jolly e percorso letterale validi (* e ?), ma non supporta espressioni regolari.
Valori restituiti
Raccolta enumerabile dei nomi completi (inclusi i percorsi) per le directory nella directory specificata da path e che corrispondono al criterio di ricerca specificato.
Eccezioni
.NET Framework e .NET versioni core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene caratteri non validi. È possibile eseguire una query per individuare caratteri non validi con il GetInvalidPathChars() metodo .
oppure
searchPattern non contiene un modello valido.
path non è valido, ad esempio il riferimento a un'unità non mappata.
path è un nome di file.
Il percorso, il nome file o la combinazione specificati superano la lunghezza massima definita dal sistema.
Il chiamante non dispone dell'autorizzazione richiesta.
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
Nell'esempio seguente vengono enumerate le directory di primo livello in un percorso specificato che corrispondono a un criterio di ricerca specificato.
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
Commenti
searchPattern può essere una combinazione di caratteri letterali e caratteri jolly, ma non supporta espressioni regolari. Gli identificatori jolly seguenti sono consentiti in searchPattern.
| Identificatore di caratteri jolly | Corrispondenze |
|---|---|
| * (asterisco) | Zero o più caratteri in tale posizione. |
| ? (punto interrogativo) | Esattamente un carattere in quella posizione. |
I caratteri diversi dal carattere jolly sono caratteri letterali. Ad esempio, la searchPattern stringa "*t" cerca tutti i nomi path che terminano con la lettera "t". La searchPattern stringa "s*" cerca tutti i nomi che path iniziano con la lettera "s".
searchPattern non può terminare in due punti ("..") o contenere due punti ("..") seguiti da DirectorySeparatorChar o AltDirectorySeparatorChar, né può contenere caratteri non validi. È possibile eseguire una query per individuare caratteri non validi usando il metodo GetInvalidPathChars.
È possibile specificare informazioni relative o assolute sul path percorso nel parametro . Le informazioni sul percorso relative vengono interpretate come relative alla directory di lavoro corrente, che è possibile determinare usando il GetCurrentDirectory metodo . I nomi di directory restituiti sono preceduti dal valore specificato nel path parametro . Ad esempio, se si specifica un percorso relativo nel path parametro , i nomi di directory restituiti conterranno un percorso relativo.
I EnumerateDirectories metodi e GetDirectories differiscono come segue: quando si utilizza EnumerateDirectories, è possibile iniziare a enumerare la raccolta di nomi prima che venga restituita l'intera raccolta. Quando si utilizza GetDirectories, è necessario attendere che venga restituita l'intera matrice di nomi prima di poter accedere alla matrice. Pertanto, quando si lavora con molti file e directory, EnumerateDirectories può essere più efficiente.
La raccolta restituita non viene memorizzata nella cache; ogni chiamata a nella GetEnumerator raccolta avvierà una nuova enumerazione.
Si applica a
EnumerateDirectories(String, String, EnumerationOptions)
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
Restituisce un insieme enumerabile dei nomi completi della directory che corrispondono a un criterio di ricerca in un percorso specificato e, facoltativamente, cerca nelle sottodirectory.
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)
Parametri
- path
- String
Percorso relativo o assoluto della directory in cui eseguire la ricerca. Questa stringa non fa distinzione tra maiuscole e minuscole.
- searchPattern
- String
Stringa di ricerca che deve corrispondere ai nomi delle directory in path. Questo parametro può contenere una combinazione di caratteri jolly e percorso letterale validi (* e ?), ma non supporta espressioni regolari.
- enumerationOptions
- EnumerationOptions
Oggetto che descrive la configurazione di ricerca ed enumerazione da utilizzare.
Valori restituiti
Raccolta enumerabile dei nomi completi (inclusi i percorsi) per le directory nella directory specificata da path e che corrispondono ai criteri di ricerca e alle opzioni di enumerazione specificati.
Eccezioni
.NET Framework e .NET versioni core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene caratteri non validi. È possibile eseguire una query per individuare caratteri non validi usando il metodo GetInvalidPathChars().
oppure
searchPattern non contiene un modello valido.
path o searchPattern è null.
path non è valido, ad esempio il riferimento a un'unità non mappata.
path è un nome di file.
Il percorso, il nome file o la combinazione specificati superano la lunghezza massima definita dal sistema.
Il chiamante non dispone dell'autorizzazione richiesta.
Il chiamante non dispone dell'autorizzazione richiesta.
Commenti
searchPattern può essere una combinazione di caratteri letterali e caratteri jolly, ma non supporta espressioni regolari. Gli identificatori jolly seguenti sono consentiti in searchPattern.
| Identificatore di caratteri jolly | Corrispondenze |
|---|---|
| * (asterisco) | Zero o più caratteri in tale posizione. |
| ? (punto interrogativo) | Esattamente un carattere in quella posizione. |
I caratteri diversi dal carattere jolly sono caratteri letterali. Ad esempio, la searchPattern stringa "*t" cerca tutti i nomi path che terminano con la lettera "t". La searchPattern stringa "s*" cerca tutti i nomi che path iniziano con la lettera "s".
searchPattern non può terminare in due punti ("..") o contenere due punti ("..") seguiti da DirectorySeparatorChar o AltDirectorySeparatorChar, né può contenere caratteri non validi. È possibile eseguire una query per individuare caratteri non validi usando il metodo GetInvalidPathChars.
È possibile specificare informazioni relative o assolute sul path percorso nel parametro . Le informazioni sul percorso relative vengono interpretate come relative alla directory di lavoro corrente, che è possibile determinare usando il GetCurrentDirectory metodo . I nomi di directory restituiti sono preceduti dal valore specificato nel path parametro . Ad esempio, se si specifica un percorso relativo nel path parametro , i nomi di directory restituiti conterranno un percorso relativo.
I EnumerateDirectories metodi e GetDirectories differiscono come segue: quando si utilizza EnumerateDirectories, è possibile iniziare a enumerare la raccolta di nomi prima che venga restituita l'intera raccolta. Quando si utilizza GetDirectories, è necessario attendere che venga restituita l'intera matrice di nomi prima di poter accedere alla matrice. Pertanto, quando si lavora con molti file e directory, EnumerateDirectories può essere più efficiente.
La raccolta restituita non viene memorizzata nella cache; ogni chiamata a nella GetEnumerator raccolta avvierà una nuova enumerazione.
Si applica a
EnumerateDirectories(String, String, SearchOption)
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- Directory.cs
Restituisce una raccolta enumerabile di nomi completi della directory che corrispondono a un criterio di ricerca in un percorso specificato e, facoltativamente, cerca nelle sottodirectory.
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)
Parametri
- path
- String
Percorso relativo o assoluto della directory in cui eseguire la ricerca. Questa stringa non fa distinzione tra maiuscole e minuscole.
- searchPattern
- String
Stringa di ricerca che deve corrispondere ai nomi delle directory in path. Questo parametro può contenere una combinazione di caratteri jolly e percorso letterale validi (* e ?), ma non supporta espressioni regolari.
- searchOption
- SearchOption
Uno dei valori di enumerazione che specifica se l'operazione di ricerca deve includere solo la directory corrente o deve includere tutte le sottodirectory. Il valore predefinito è TopDirectoryOnly.
Valori restituiti
Raccolta enumerabile dei nomi completi (inclusi i percorsi) per le directory nella directory specificata da path e che corrispondono al criterio di ricerca e all'opzione di ricerca specificati.
Eccezioni
.NET Framework e .NET versioni core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene caratteri non validi. È possibile eseguire una query per individuare caratteri non validi usando il metodo GetInvalidPathChars().
oppure
searchPattern non contiene un modello valido.
searchOption non è un valore valido SearchOption .
path non è valido, ad esempio il riferimento a un'unità non mappata.
path è un nome di file.
Il percorso, il nome file o la combinazione specificati superano la lunghezza massima definita dal sistema.
Il chiamante non dispone dell'autorizzazione richiesta.
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
Nell'esempio seguente vengono enumerate le directory in un percorso specificato che corrispondono a un criterio di ricerca specificato. Usa il searchOption parametro per specificare che tutte le sottodirectory devono essere incluse nella ricerca.
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
Commenti
searchPattern può essere una combinazione di caratteri letterali e caratteri jolly, ma non supporta espressioni regolari. Gli identificatori jolly seguenti sono consentiti in searchPattern.
| Identificatore di caratteri jolly | Corrispondenze |
|---|---|
| * (asterisco) | Zero o più caratteri in tale posizione. |
| ? (punto interrogativo) | Esattamente un carattere in quella posizione. |
I caratteri diversi dal carattere jolly sono caratteri letterali. Ad esempio, la searchPattern stringa "*t" cerca tutti i nomi path che terminano con la lettera "t". La searchPattern stringa "s*" cerca tutti i nomi che path iniziano con la lettera "s".
searchPattern non può terminare in due punti ("..") o contenere due punti ("..") seguiti da DirectorySeparatorChar o AltDirectorySeparatorChar, né può contenere caratteri non validi. È possibile eseguire una query per individuare caratteri non validi usando il metodo GetInvalidPathChars.
È possibile specificare informazioni relative o assolute sul path percorso nel parametro . Le informazioni sul percorso relative vengono interpretate come relative alla directory di lavoro corrente, che è possibile determinare usando il GetCurrentDirectory metodo . I nomi di directory restituiti sono preceduti dal valore specificato nel path parametro . Ad esempio, se si specifica un percorso relativo nel path parametro , i nomi di directory restituiti conterranno un percorso relativo.
I EnumerateDirectories metodi e GetDirectories differiscono come segue: quando si utilizza EnumerateDirectories, è possibile iniziare a enumerare la raccolta di nomi prima che venga restituita l'intera raccolta. Quando si utilizza GetDirectories, è necessario attendere che venga restituita l'intera matrice di nomi prima di poter accedere alla matrice. Pertanto, quando si lavora con molti file e directory, EnumerateDirectories può essere più efficiente.
La raccolta restituita non viene memorizzata nella cache; ogni chiamata a nella GetEnumerator raccolta avvierà una nuova enumerazione.