Directory.GetFileSystemEntries Metodo

Definizione

Restituisce i nomi di tutti i file e le sottodirectory che soddisfano i criteri specificati.

Overload

Nome Descrizione
GetFileSystemEntries(String)

Restituisce i nomi di tutti i file e le sottodirectory in un percorso specificato.

GetFileSystemEntries(String, String)

Restituisce una matrice di nomi di file e nomi di directory che corrispondono a un criterio di ricerca in un percorso specificato.

GetFileSystemEntries(String, String, EnumerationOptions)

Restituisce una matrice di nomi di file e nomi di directory che corrispondono a un criterio di ricerca e opzioni di enumerazione in un percorso specificato.

GetFileSystemEntries(String, String, SearchOption)

Restituisce una matrice di tutti i nomi di file e di directory che corrispondono a un criterio di ricerca in un percorso specificato e, facoltativamente, cerca nelle sottodirectory.

GetFileSystemEntries(String)

Restituisce i nomi di tutti i file e le sottodirectory in un percorso specificato.

public:
 static cli::array <System::String ^> ^ GetFileSystemEntries(System::String ^ path);
public static string[] GetFileSystemEntries(string path);
static member GetFileSystemEntries : string -> string[]
Public Shared Function GetFileSystemEntries (path As String) As 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

String[]

Matrice dei nomi di file e sottodirectory nella directory specificata oppure di una matrice vuota se non vengono trovati file o sottodirectory.

Eccezioni

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi. È possibile eseguire una query per individuare caratteri non validi con GetInvalidPathChars().

path è null.

Il percorso, il nome file specificato o entrambi superano la lunghezza massima definita dal sistema.

path è un nome di file.

Il percorso specificato non è valido( ad esempio, si trova in un'unità non mappata).

Esempio

Nell'esempio seguente viene utilizzato il GetFileSystemEntries metodo per riempire una matrice di stringhe con i nomi di tutti i file e le sottodirectory in un percorso specificato dall'utente e stampa ogni stringa nella matrice nella console. L'esempio è configurato per rilevare tutti gli errori comuni a questo metodo.

using System;

namespace GetFileSystemEntries
{
    class Class1
    {
        static void Main(string[] args)
        {
            Class1 snippets = new Class1();

            string path = System.IO.Directory.GetCurrentDirectory();
            string filter = "*.exe";

            snippets.PrintFileSystemEntries(path);
            snippets.PrintFileSystemEntries(path, filter);		
            snippets.GetLogicalDrives();
            snippets.GetParent(path);
            snippets.Move("C:\\proof", "C:\\Temp");
        }

        void PrintFileSystemEntries(string path)
        {
            
            try
            {
                // Obtain the file system entries in the directory path.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path);

                foreach (string str in directoryEntries)
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException)
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException)
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException)
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " +
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException)
            {
                System.Console.WriteLine("The path encapsulated in the " +
                    "Directory object does not exist.");
            }
        }
        void PrintFileSystemEntries(string path, string pattern)
        {
            try
            {
                // Obtain the file system entries in the directory
                // path that match the pattern.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path, pattern);

                foreach (string str in directoryEntries)
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException)
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException)
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException)
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " +
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException)
            {
                System.Console.WriteLine("The path encapsulated in the " +
                    "Directory object does not exist.");
            }
        }

        // Print out all logical drives on the system.
        void GetLogicalDrives()
        {
            try
            {
                string[] drives = System.IO.Directory.GetLogicalDrives();

                foreach (string str in drives)
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (System.IO.IOException)
            {
                System.Console.WriteLine("An I/O error occurs.");
            }
            catch (System.Security.SecurityException)
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
        }
        void GetParent(string path)
        {
            try
            {
                System.IO.DirectoryInfo directoryInfo =
                    System.IO.Directory.GetParent(path);

                System.Console.WriteLine(directoryInfo.FullName);
            }
            catch (ArgumentNullException)
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (ArgumentException)
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, or " +
                    "contains invalid characters.");
            }
        }
        void Move(string sourcePath, string destinationPath)
        {
            try
            {
                System.IO.Directory.Move(sourcePath, destinationPath);
                System.Console.WriteLine("The directory move is complete.");
            }
            catch (ArgumentNullException)
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException)
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException)
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " +
                    "or contains invalid characters.");	
            }
            catch (System.IO.IOException)
            {
                System.Console.WriteLine("An attempt was made to move a " +
                    "directory to a different " +
                    "volume, or destDirName " +
                    "already exists.");
            }
        }
    }
}
open System
open System.IO
open System.Security

let printFileSystemEntries path =
    try
        // Obtain the file system entries in the directory path.
        let directoryEntries = Directory.GetFileSystemEntries path

        for str in directoryEntries do
            printfn $"{str}"
    with
    | :? ArgumentNullException ->
        printfn "Path is a null reference."
    | :? SecurityException ->
        printfn $"The caller does not have the required permission."
    | :? ArgumentException ->
        printfn $"Path is an empty string, contains only white spaces, or contains invalid characters."
    | :? DirectoryNotFoundException ->
        printfn $"The path encapsulated in the Directory object does not exist."

let printFileSystemEntriesPattern path pattern =
    try
        // Obtain the file system entries in the directory
        // path that match the pattern.
        let directoryEntries = Directory.GetFileSystemEntries(path, pattern)

        for str in directoryEntries do
            printfn $"{str}"
    with
    | :? ArgumentNullException -> printfn "Path is a null reference."
    | :? SecurityException -> printfn "The caller does not have the required permission."
    | :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
    | :? DirectoryNotFoundException -> printfn "The path encapsulated in the Directory object does not exist."

// Print out all logical drives on the system.
let getLogicalDrives () =
    try
        let drives = Directory.GetLogicalDrives()

        for str in drives do
            printfn $"{str}"
    with
    | :? IOException -> printfn "An I/O error occurs."
    | :? SecurityException -> printfn "The caller does not have the required permission."

let getParent path =
    try
        let directoryInfo = Directory.GetParent path
        printfn $"{directoryInfo.FullName}"

    with
    | :? ArgumentNullException -> printfn "Path is a null reference."
    | :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."

let move sourcePath destinationPath =
    try
        Directory.Move(sourcePath, destinationPath)
        printfn "The directory move is complete."

    with
    | :? ArgumentNullException -> printfn "Path is a null reference."
    | :? SecurityException -> printfn "The caller does not have the required permission."
    | :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
    | :? IOException -> printfn "An attempt was made to move a directory to a different volume, or destDirName already exists."

let path = Directory.GetCurrentDirectory()
let filter = "*.exe"

printFileSystemEntries path
printFileSystemEntriesPattern path filter
getLogicalDrives ()
getParent path
move "C:\\proof" "C:\\Temp"
Option Explicit On 
Option Strict On

Namespace GetFileSystemEntries
    Class Class1
        Overloads Shared Sub Main(ByVal args() As String)
            Dim snippets As New Class1()
            Dim path As String = System.IO.Directory.GetCurrentDirectory()
            Dim filter As String = "*.exe"
            snippets.PrintFileSystemEntries(path)
            snippets.PrintFileSystemEntries(path, filter)
            snippets.GetLogicalDrives()
            snippets.GetParent(path)
            snippets.Move("C:\proof", "C:\Temp")
        End Sub

        Sub PrintFileSystemEntries(ByVal path As String)
            Try
                ' Obtain the file system entries in the directory path.
                Dim directoryEntries As String()
                directoryEntries = System.IO.Directory.GetFileSystemEntries(path)
                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub
        Sub PrintFileSystemEntries(ByVal path As String, _
                                   ByVal pattern As String)
            Try
                ' Obtain the file system entries in the directory
                ' path that match the pattern.
                Dim directoryEntries As String()
                directoryEntries = _
                   System.IO.Directory.GetFileSystemEntries(path, pattern)

                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub

        ' Print out all logical drives on the system.
        Sub GetLogicalDrives()
            Try
                Dim drives As String()
                drives = System.IO.Directory.GetLogicalDrives()

                Dim str As String
                For Each str In drives
                    System.Console.WriteLine(str)
                Next str
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An I/O error occurs.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            End Try
        End Sub
        Sub GetParent(ByVal path As String)
            Try
                Dim directoryInfo As System.IO.DirectoryInfo
                directoryInfo = System.IO.Directory.GetParent(path)
                System.Console.WriteLine(directoryInfo.FullName)
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                     "contains only white spaces, or " + _
                                     "contains invalid characters.")
            End Try
        End Sub
        Sub Move(ByVal sourcePath As String, ByVal destinationPath As String)
            Try
                System.IO.Directory.Move(sourcePath, destinationPath)
                System.Console.WriteLine("The directory move is complete.")
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An attempt was made to move a " + _
                                        "directory to a different " + _
                                        "volume, or destDirName " + _
                                        "already exists.")
            End Try
        End Sub
    End Class
End Namespace

Commenti

L'ordine dei nomi di file e directory restituiti non è garantito; utilizzare il Sort metodo se è necessario un ordinamento specifico.

I EnumerateFileSystemEntries metodi e GetFileSystemEntries differiscono come segue: quando si utilizza , è possibile iniziare a enumerare la raccolta di voci prima che venga restituita l'intera raccolta. Quando si utilizza EnumerateFileSystemEntriesGetFileSystemEntries, è necessario attendere che venga restituita l'intera matrice di voci prima di poter accedere alla matrice. Pertanto, quando si lavora con molti file e directory, EnumerateFileSystemEntries può essere più efficiente.

Questo metodo è identico a GetFileSystemEntries quello dell'asterisco (*) specificato come modello di ricerca.

Il path parametro è autorizzato a specificare informazioni relative o assolute sul percorso. Le informazioni sul percorso relative sono interpretate come relative alla directory di lavoro corrente. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.

La distinzione tra maiuscole e minuscole del path parametro corrisponde a quella del file system in cui è in esecuzione il codice. Ad esempio, non fa distinzione tra maiuscole e minuscole in NTFS (file system Windows predefinito) e fa distinzione tra maiuscole e minuscole nei file system Linux.

Per un elenco delle attività di I/O comuni, vedere Attività di I/O comuni.

Vedi anche

Si applica a

GetFileSystemEntries(String, String)

Restituisce una matrice di nomi di file e nomi di directory che corrispondono a un criterio di ricerca in un percorso specificato.

public:
 static cli::array <System::String ^> ^ GetFileSystemEntries(System::String ^ path, System::String ^ searchPattern);
public static string[] GetFileSystemEntries(string path, string searchPattern);
static member GetFileSystemEntries : string * string -> string[]
Public Shared Function GetFileSystemEntries (path As String, searchPattern As String) As 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 di file e directory in path. Questo parametro può contenere una combinazione di caratteri jolly e percorso letterale validi (* e ?), ma non supporta espressioni regolari.

Valori restituiti

String[]

Matrice di nomi di file e nomi di directory che corrispondono ai criteri di ricerca specificati oppure una matrice vuota se non vengono trovati file o directory.

Eccezioni

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi. È possibile eseguire una query per individuare caratteri non validi con il GetInvalidPathChars() metodo .

oppure

searchPattern non contiene un modello valido.

path o searchPattern è null.

Il percorso, il nome file specificato o entrambi superano la lunghezza massima definita dal sistema.

path è un nome di file.

Il percorso specificato non è valido( ad esempio, si trova in un'unità non mappata).

Esempio

Nell'esempio seguente viene utilizzato il GetFileSystemEntries metodo per riempire una matrice di stringhe con i nomi di tutti i file corrispondenti a un filtro specificato dall'utente in una posizione specifica e stampa ogni stringa nella matrice nella console. L'esempio è configurato per rilevare tutti gli errori comuni a questo metodo.

using System;

namespace GetFileSystemEntries
{
    class Class1
    {
        static void Main(string[] args)
        {
            Class1 snippets = new Class1();

            string path = System.IO.Directory.GetCurrentDirectory();
            string filter = "*.exe";

            snippets.PrintFileSystemEntries(path);
            snippets.PrintFileSystemEntries(path, filter);		
            snippets.GetLogicalDrives();
            snippets.GetParent(path);
            snippets.Move("C:\\proof", "C:\\Temp");
        }

        void PrintFileSystemEntries(string path)
        {
            
            try
            {
                // Obtain the file system entries in the directory path.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path);

                foreach (string str in directoryEntries)
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException)
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException)
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException)
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " +
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException)
            {
                System.Console.WriteLine("The path encapsulated in the " +
                    "Directory object does not exist.");
            }
        }
        void PrintFileSystemEntries(string path, string pattern)
        {
            try
            {
                // Obtain the file system entries in the directory
                // path that match the pattern.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path, pattern);

                foreach (string str in directoryEntries)
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException)
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException)
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException)
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " +
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException)
            {
                System.Console.WriteLine("The path encapsulated in the " +
                    "Directory object does not exist.");
            }
        }

        // Print out all logical drives on the system.
        void GetLogicalDrives()
        {
            try
            {
                string[] drives = System.IO.Directory.GetLogicalDrives();

                foreach (string str in drives)
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (System.IO.IOException)
            {
                System.Console.WriteLine("An I/O error occurs.");
            }
            catch (System.Security.SecurityException)
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
        }
        void GetParent(string path)
        {
            try
            {
                System.IO.DirectoryInfo directoryInfo =
                    System.IO.Directory.GetParent(path);

                System.Console.WriteLine(directoryInfo.FullName);
            }
            catch (ArgumentNullException)
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (ArgumentException)
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, or " +
                    "contains invalid characters.");
            }
        }
        void Move(string sourcePath, string destinationPath)
        {
            try
            {
                System.IO.Directory.Move(sourcePath, destinationPath);
                System.Console.WriteLine("The directory move is complete.");
            }
            catch (ArgumentNullException)
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException)
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException)
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " +
                    "or contains invalid characters.");	
            }
            catch (System.IO.IOException)
            {
                System.Console.WriteLine("An attempt was made to move a " +
                    "directory to a different " +
                    "volume, or destDirName " +
                    "already exists.");
            }
        }
    }
}
open System
open System.IO
open System.Security

let printFileSystemEntries path =
    try
        // Obtain the file system entries in the directory path.
        let directoryEntries = Directory.GetFileSystemEntries path

        for str in directoryEntries do
            printfn $"{str}"
    with
    | :? ArgumentNullException ->
        printfn "Path is a null reference."
    | :? SecurityException ->
        printfn $"The caller does not have the required permission."
    | :? ArgumentException ->
        printfn $"Path is an empty string, contains only white spaces, or contains invalid characters."
    | :? DirectoryNotFoundException ->
        printfn $"The path encapsulated in the Directory object does not exist."

let printFileSystemEntriesPattern path pattern =
    try
        // Obtain the file system entries in the directory
        // path that match the pattern.
        let directoryEntries = Directory.GetFileSystemEntries(path, pattern)

        for str in directoryEntries do
            printfn $"{str}"
    with
    | :? ArgumentNullException -> printfn "Path is a null reference."
    | :? SecurityException -> printfn "The caller does not have the required permission."
    | :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
    | :? DirectoryNotFoundException -> printfn "The path encapsulated in the Directory object does not exist."

// Print out all logical drives on the system.
let getLogicalDrives () =
    try
        let drives = Directory.GetLogicalDrives()

        for str in drives do
            printfn $"{str}"
    with
    | :? IOException -> printfn "An I/O error occurs."
    | :? SecurityException -> printfn "The caller does not have the required permission."

let getParent path =
    try
        let directoryInfo = Directory.GetParent path
        printfn $"{directoryInfo.FullName}"

    with
    | :? ArgumentNullException -> printfn "Path is a null reference."
    | :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."

let move sourcePath destinationPath =
    try
        Directory.Move(sourcePath, destinationPath)
        printfn "The directory move is complete."

    with
    | :? ArgumentNullException -> printfn "Path is a null reference."
    | :? SecurityException -> printfn "The caller does not have the required permission."
    | :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
    | :? IOException -> printfn "An attempt was made to move a directory to a different volume, or destDirName already exists."

let path = Directory.GetCurrentDirectory()
let filter = "*.exe"

printFileSystemEntries path
printFileSystemEntriesPattern path filter
getLogicalDrives ()
getParent path
move "C:\\proof" "C:\\Temp"
Option Explicit On 
Option Strict On

Namespace GetFileSystemEntries
    Class Class1
        Overloads Shared Sub Main(ByVal args() As String)
            Dim snippets As New Class1()
            Dim path As String = System.IO.Directory.GetCurrentDirectory()
            Dim filter As String = "*.exe"
            snippets.PrintFileSystemEntries(path)
            snippets.PrintFileSystemEntries(path, filter)
            snippets.GetLogicalDrives()
            snippets.GetParent(path)
            snippets.Move("C:\proof", "C:\Temp")
        End Sub

        Sub PrintFileSystemEntries(ByVal path As String)
            Try
                ' Obtain the file system entries in the directory path.
                Dim directoryEntries As String()
                directoryEntries = System.IO.Directory.GetFileSystemEntries(path)
                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub
        Sub PrintFileSystemEntries(ByVal path As String, _
                                   ByVal pattern As String)
            Try
                ' Obtain the file system entries in the directory
                ' path that match the pattern.
                Dim directoryEntries As String()
                directoryEntries = _
                   System.IO.Directory.GetFileSystemEntries(path, pattern)

                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub

        ' Print out all logical drives on the system.
        Sub GetLogicalDrives()
            Try
                Dim drives As String()
                drives = System.IO.Directory.GetLogicalDrives()

                Dim str As String
                For Each str In drives
                    System.Console.WriteLine(str)
                Next str
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An I/O error occurs.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            End Try
        End Sub
        Sub GetParent(ByVal path As String)
            Try
                Dim directoryInfo As System.IO.DirectoryInfo
                directoryInfo = System.IO.Directory.GetParent(path)
                System.Console.WriteLine(directoryInfo.FullName)
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                     "contains only white spaces, or " + _
                                     "contains invalid characters.")
            End Try
        End Sub
        Sub Move(ByVal sourcePath As String, ByVal destinationPath As String)
            Try
                System.IO.Directory.Move(sourcePath, destinationPath)
                System.Console.WriteLine("The directory move is complete.")
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An attempt was made to move a " + _
                                        "directory to a different " + _
                                        "volume, or destDirName " + _
                                        "already exists.")
            End Try
        End Sub
    End Class
End Namespace

Commenti

L'ordine dei nomi di file e directory restituiti non è garantito; utilizzare il Sort metodo se è necessario un ordinamento specifico.

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 Matches
* (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.

Note

Quando si usa il carattere jolly asterisco in un searchPattern oggetto come "*.txt", il numero di caratteri nell'estensione specificata influisce sulla ricerca come indicato di seguito:

  • Se l'estensione specificata è lunga esattamente tre caratteri, il metodo restituisce i file con estensioni che iniziano con l'estensione specificata. Ad esempio, "*.xls" restituisce sia "book.xls" che "book.xlsx".
  • In tutti gli altri casi, il metodo restituisce file che corrispondono esattamente all'estensione specificata. Ad esempio, "*.ai" restituisce "file.ai" ma non "file.aif".

Quando si utilizza il carattere jolly del punto interrogativo, questo metodo restituisce solo i file che corrispondono all'estensione di file specificata. Ad esempio, dato due file, "file1.txt" e "file1.txtother", in una directory, un modello di ricerca di "file?.txt" restituisce solo il primo file, mentre un modello di ricerca "file*.txt" restituisce entrambi i file.

Il path parametro è autorizzato a specificare informazioni relative o assolute sul percorso. Le informazioni sul percorso relative sono interpretate come relative alla directory di lavoro corrente. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.

La distinzione tra maiuscole e minuscole del path parametro corrisponde a quella del file system in cui è in esecuzione il codice. Ad esempio, non fa distinzione tra maiuscole e minuscole in NTFS (file system Windows predefinito) e fa distinzione tra maiuscole e minuscole nei file system Linux.

Per un elenco delle attività di I/O comuni, vedere Attività di I/O comuni.

Vedi anche

Si applica a

GetFileSystemEntries(String, String, EnumerationOptions)

Restituisce una matrice di nomi di file e nomi di directory che corrispondono a un criterio di ricerca e opzioni di enumerazione in un percorso specificato.

public:
 static cli::array <System::String ^> ^ GetFileSystemEntries(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetFileSystemEntries : string * string * System.IO.EnumerationOptions -> string[]
Public Shared Function GetFileSystemEntries (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As 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 di file e directory in path. Questo parametro può contenere una combinazione di caratteri letterali e caratteri jolly validi, ma non supporta espressioni regolari.

enumerationOptions
EnumerationOptions

Oggetto che descrive la configurazione di ricerca ed enumerazione da utilizzare.

Valori restituiti

String[]

Matrice di nomi di file e nomi di directory che corrispondono al criterio di ricerca e alle opzioni di enumerazione specificati oppure a una matrice vuota se non vengono trovati file o directory.

Eccezioni

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi. È possibile eseguire una query per individuare caratteri non validi con il GetInvalidPathChars() metodo .

oppure

searchPattern non contiene un modello valido.

path o searchPattern è null.

Il percorso, il nome file specificato o entrambi superano la lunghezza massima definita dal sistema.

path è un nome di file.

Il percorso specificato non è valido( ad esempio, si trova in un'unità non mappata).

Commenti

L'ordine dei nomi di file e directory restituiti non è garantito; utilizzare il Sort metodo se è necessario un ordinamento specifico.

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 Matches
* (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.

Note

Quando si usa il carattere jolly asterisco in un searchPattern oggetto come "*.txt", il numero di caratteri nell'estensione specificata influisce sulla ricerca come indicato di seguito:

  • Se l'estensione specificata è lunga esattamente tre caratteri, il metodo restituisce i file con estensioni che iniziano con l'estensione specificata. Ad esempio, "*.xls" restituisce sia "book.xls" che "book.xlsx".
  • In tutti gli altri casi, il metodo restituisce file che corrispondono esattamente all'estensione specificata. Ad esempio, "*.ai" restituisce "file.ai" ma non "file.aif".

Quando si utilizza il carattere jolly del punto interrogativo, questo metodo restituisce solo i file che corrispondono all'estensione di file specificata. Ad esempio, dato due file, "file1.txt" e "file1.txtother", in una directory, un modello di ricerca di "file?.txt" restituisce solo il primo file, mentre un modello di ricerca "file*.txt" restituisce entrambi i file.

Il path parametro è autorizzato a specificare informazioni relative o assolute sul percorso. Le informazioni sul percorso relative sono interpretate come relative alla directory di lavoro corrente. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.

La distinzione tra maiuscole e minuscole del path parametro corrisponde a quella del file system in cui è in esecuzione il codice. Ad esempio, non fa distinzione tra maiuscole e minuscole in NTFS (file system Windows predefinito) e fa distinzione tra maiuscole e minuscole nei file system Linux.

Per un elenco delle attività di I/O comuni, vedere Attività di I/O comuni.

Si applica a

GetFileSystemEntries(String, String, SearchOption)

Restituisce una matrice di tutti i nomi di file e di directory che corrispondono a un criterio di ricerca in un percorso specificato e, facoltativamente, cerca nelle sottodirectory.

public:
 static cli::array <System::String ^> ^ GetFileSystemEntries(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetFileSystemEntries : string * string * System.IO.SearchOption -> string[]
Public Shared Function GetFileSystemEntries (path As String, searchPattern As String, searchOption As SearchOption) As 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 di file e 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

String[]

Matrice di file che corrispondono ai criteri di ricerca specificati o a una matrice vuota se non vengono trovati file o directory.

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.

Commenti

L'ordine dei nomi di file e directory restituiti non è garantito; utilizzare il Sort metodo se è necessario un ordinamento specifico.

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 Matches
* (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.

Note

Quando si usa il carattere jolly asterisco in un searchPattern oggetto come "*.txt", il numero di caratteri nell'estensione specificata influisce sulla ricerca come indicato di seguito:

  • Se l'estensione specificata è lunga esattamente tre caratteri, il metodo restituisce i file con estensioni che iniziano con l'estensione specificata. Ad esempio, "*.xls" restituisce sia "book.xls" che "book.xlsx".
  • In tutti gli altri casi, il metodo restituisce file che corrispondono esattamente all'estensione specificata. Ad esempio, "*.ai" restituisce "file.ai" ma non "file.aif".

Quando si utilizza il carattere jolly del punto interrogativo, questo metodo restituisce solo i file che corrispondono all'estensione di file specificata. Ad esempio, dato due file, "file1.txt" e "file1.txtother", in una directory, un modello di ricerca di "file?.txt" restituisce solo il primo file, mentre un modello di ricerca "file*.txt" restituisce entrambi i file.

I EnumerateFileSystemEntries metodi e GetFileSystemEntries differiscono come segue: quando si utilizza , è possibile iniziare a enumerare la raccolta di voci prima che venga restituita l'intera raccolta. Quando si utilizza EnumerateFileSystemEntriesGetFileSystemEntries, è necessario attendere che venga restituita l'intera matrice di voci prima di poter accedere alla matrice. Pertanto, quando si lavora con molti file e directory, EnumerateFileSystemEntries può essere più efficiente.

È possibile specificare informazioni relative sul percorso con il path parametro . Le informazioni sul percorso relative vengono interpretate come relative alla directory di lavoro corrente, che è possibile determinare usando il GetCurrentDirectory metodo .

Vedi anche

Si applica a