DirectoryInfo.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 un insieme enumerabile di informazioni sulla directory nella directory corrente.
Overload
EnumerateDirectories(String, SearchOption) |
Restituisce una raccolta enumerabile di informazioni sulla directory che corrispondono a un criterio di ricerca e all'opzione di ricerca subdirectory specificati. |
EnumerateDirectories(String, EnumerationOptions) |
Restituisce una raccolta enumerabile di informazioni sulla directory che corrisponde al criterio di ricerca e alle opzioni di enumerazione specificati. |
EnumerateDirectories() |
Restituisce un insieme enumerabile di informazioni sulla directory nella directory corrente. |
EnumerateDirectories(String) |
Restituisce una raccolta enumerabile di informazioni sulla directory che corrispondono a un criterio di ricerca specificato. |
EnumerateDirectories(String, SearchOption)
- Origine:
- DirectoryInfo.cs
- Origine:
- DirectoryInfo.cs
- Origine:
- DirectoryInfo.cs
Restituisce una raccolta enumerabile di informazioni sulla directory che corrispondono a un criterio di ricerca e all'opzione di ricerca subdirectory specificati.
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)
Parametri
- searchPattern
- String
Stringa di ricerca in base alla quale confrontare i nomi delle directory. Questo parametro può contenere una combinazione di caratteri del percorso letterale e caratteri jolly (* e ?) validi, ma non supporta le espressioni regolari.
- searchOption
- SearchOption
Uno dei valori di enumerazione che specifica se l'operazione di ricerca deve includere solo la directory corrente o anche tutte le sottodirectory. Il valore predefinito è TopDirectoryOnly.
Restituisce
Raccolta enumerabile di directory che corrisponde a searchPattern
e searchOption
.
Eccezioni
searchPattern
è null
.
searchOption
non è un valore valido di SearchOption.
Il percorso incapsulato nell'oggetto DirectoryInfo non è valido, ad esempio si trova in un'unità non mappata.
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
Nell'esempio seguente viene utilizzato questo metodo e il EnumerateFiles metodo per enumerare i file e le directory all'interno della directory start e visualizzare il nome e le dimensioni di qualsiasi file superiore a 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
Commenti
searchPattern
può essere una combinazione di caratteri letterali e caratteri jolly, ma non supporta espressioni regolari. Gli identificatori con caratteri jolly seguenti sono consentiti in searchPattern
.
Identificatore di caratteri jolly | Corrispondenze |
---|---|
* (asterisco) | Zero o più caratteri in tale posizione. |
? (punto interrogativo) | Zero o un carattere in tale posizione. |
I caratteri diversi dai caratteri jolly sono caratteri letterali. Ad esempio, la stringa "*t" cerca tutti i nomi che terminano con la lettera "t". ". La searchPattern
stringa "s*" cerca tutti i nomi che iniziano path
con la lettera "s".
I EnumerateDirectories metodi e GetDirectories differiscono come segue:
Quando si utilizza EnumerateDirectories, è possibile iniziare a enumerare la raccolta di DirectoryInfo oggetti prima che venga restituita l'intera raccolta.
Quando si usa GetDirectories, è necessario attendere che venga restituita l'intera matrice di DirectoryInfo oggetti prima di poter accedere alla matrice.
Pertanto, quando si lavora con molti file e directory, EnumerateDirectories può essere più efficiente.
Questo metodo precompila i valori delle proprietà seguenti DirectoryInfo :
La raccolta restituita non viene memorizzata nella cache; ogni chiamata al GetEnumerator metodo nella raccolta avvierà una nuova enumerazione.
Si applica a
EnumerateDirectories(String, EnumerationOptions)
- Origine:
- DirectoryInfo.cs
- Origine:
- DirectoryInfo.cs
- Origine:
- DirectoryInfo.cs
Restituisce una raccolta enumerabile di informazioni sulla directory che corrisponde al criterio di ricerca e alle opzioni di enumerazione specificati.
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)
Parametri
- searchPattern
- String
Stringa di ricerca in base alla quale confrontare i nomi delle directory. Questo parametro può contenere una combinazione di caratteri del percorso letterale e caratteri jolly (* e ?) validi, ma non supporta le espressioni regolari.
- enumerationOptions
- EnumerationOptions
Oggetto che descrive la configurazione di ricerca ed enumerazione da usare.
Restituisce
Raccolta enumerabile di directory che corrisponde a searchPattern
e enumerationOptions
.
Eccezioni
searchPattern
è null
.
Il percorso incapsulato nell'oggetto DirectoryInfo non è valido, ad esempio si trova in un'unità non mappata.
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 con caratteri jolly seguenti sono consentiti in searchPattern
.
Identificatore di caratteri jolly | Corrispondenze |
---|---|
* (asterisco) | Zero o più caratteri in tale posizione. |
? (punto interrogativo) | Zero o un carattere in tale posizione. |
I caratteri diversi dai caratteri jolly sono caratteri letterali. Ad esempio, la stringa "*t" cerca tutti i nomi che terminano con la lettera "t". ". La searchPattern
stringa "s*" cerca tutti i nomi che iniziano path
con la lettera "s".
I EnumerateDirectories metodi e GetDirectories differiscono come segue:
Quando si utilizza EnumerateDirectories, è possibile iniziare a enumerare la raccolta di DirectoryInfo oggetti prima che venga restituita l'intera raccolta.
Quando si usa GetDirectories, è necessario attendere che venga restituita l'intera matrice di DirectoryInfo oggetti prima di poter accedere alla matrice.
Pertanto, quando si lavora con molti file e directory, EnumerateDirectories può essere più efficiente.
Questo metodo precompila i valori delle proprietà seguenti DirectoryInfo :
La raccolta restituita non viene memorizzata nella cache; ogni chiamata al GetEnumerator metodo nella raccolta avvierà una nuova enumerazione.
Si applica a
EnumerateDirectories()
- Origine:
- DirectoryInfo.cs
- Origine:
- DirectoryInfo.cs
- Origine:
- DirectoryInfo.cs
Restituisce un insieme enumerabile di informazioni sulla directory nella directory corrente.
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)
Restituisce
Raccolta enumerabile di directory nella directory corrente.
Eccezioni
Il percorso incapsulato nell'oggetto DirectoryInfo non è valido, ad esempio si trova in un'unità non mappata.
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
Nell'esempio seguente vengono enumerate le sottodirectory nella directory C:\Programmi e viene utilizzata una query LINQ per restituire i nomi di tutte le directory create prima del 2009 controllando il valore della CreationTimeUtc proprietà.
Se sono necessari solo i nomi delle sottodirectory, usare la classe statica Directory per ottenere prestazioni migliori. Per un esempio, vedere il EnumerateDirectories(String) metodo .
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
Commenti
I EnumerateDirectories metodi e GetDirectories differiscono come segue:
Quando si utilizza EnumerateDirectories, è possibile iniziare a enumerare la raccolta di DirectoryInfo oggetti prima che venga restituita l'intera raccolta.
Quando si usa GetDirectories, è necessario attendere che venga restituita l'intera matrice di DirectoryInfo oggetti prima di poter accedere alla matrice.
Pertanto, quando si lavora con molti file e directory, EnumerateDirectories può essere più efficiente.
Questo metodo precompila i valori delle proprietà seguenti DirectoryInfo :
La raccolta restituita non viene memorizzata nella cache; ogni chiamata al GetEnumerator metodo nella raccolta avvierà una nuova enumerazione.
Si applica a
EnumerateDirectories(String)
- Origine:
- DirectoryInfo.cs
- Origine:
- DirectoryInfo.cs
- Origine:
- DirectoryInfo.cs
Restituisce una raccolta enumerabile di informazioni sulla directory che corrispondono a un criterio di ricerca specificato.
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)
Parametri
- searchPattern
- String
Stringa di ricerca in base alla quale confrontare i nomi delle directory. Questo parametro può contenere una combinazione di caratteri del percorso letterale e caratteri jolly (* e ?) validi, ma non supporta le espressioni regolari.
Restituisce
Raccolta enumerabile di directory che corrisponde a searchPattern
.
Eccezioni
searchPattern
è null
.
Il percorso incapsulato nell'oggetto DirectoryInfo non è valido, ad esempio si trova in un'unità non mappata.
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 con caratteri jolly seguenti sono consentiti in searchPattern
.
Identificatore di caratteri jolly | Corrispondenze |
---|---|
* (asterisco) | Zero o più caratteri in tale posizione. |
? (punto interrogativo) | Zero o un carattere in tale posizione. |
I caratteri diversi dai caratteri jolly sono caratteri letterali. Ad esempio, la stringa "*t" cerca tutti i nomi che terminano con la lettera "t". ". La searchPattern
stringa "s*" cerca tutti i nomi che iniziano path
con la lettera "s".
I EnumerateDirectories metodi e GetDirectories differiscono come segue:
Quando si utilizza EnumerateDirectories, è possibile iniziare a enumerare la raccolta di DirectoryInfo oggetti prima che venga restituita l'intera raccolta.
Quando si usa GetDirectories, è necessario attendere che venga restituita l'intera matrice di DirectoryInfo oggetti prima di poter accedere alla matrice.
Pertanto, quando si lavora con molti file e directory, EnumerateDirectories può essere più efficiente.
Questo metodo precompila i valori delle proprietà seguenti DirectoryInfo :
La raccolta restituita non viene memorizzata nella cache; ogni chiamata al GetEnumerator metodo nella raccolta avvierà una nuova enumerazione.