Directory.EnumerateDirectories Metodo

Definizione

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 è null.

oppure

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.

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.

path è null.

oppure

searchPattern è null.

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.

Si applica a