Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Directory.GetFileSystemEntries (String, String)

 

Data di pubblicazione: ottobre 2016

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

Spazio dei nomi:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public static string[] GetFileSystemEntries(
	string path,
	string searchPattern
)

Parametri

path
Type: System.String

Percorso relativo o assoluto della directory in cui eseguire la ricerca. Stringa senza distinzione tra maiuscole e minuscole.

searchPattern
Type: System.String

Stringa di ricerca in base alla quale confrontare i nomi dei file e delle directory in path. Questo parametro può contenere una combinazione di caratteri letterali e caratteri jolly (* e ?) validi per un percorso (vedere la sezione Note), ma non le supporta espressioni regolari.

Valore restituito

Type: System.String[]

Una matrice di nomi di file e di nomi di directory che soddisfano i criteri di ricerca specificati, oppure una matrice vuota se non vengono trovati file o directory.

Exception Condition
UnauthorizedAccessException

Il chiamante non dispone dell'autorizzazione richiesta.

ArgumentException

path è una stringa di lunghezza zero, contiene solo spazi vuoti oppure contiene uno o più caratteri non validi. Per cercare i caratteri non validi, usare il metodo GetInvalidPathChars.

-oppure-

searchPattern non contiene un criterio valido.

ArgumentNullException

path o searchPattern è null.

PathTooLongException

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, nelle piattaforme basate su Windows i percorsi non devono superare 248 caratteri e i nomi file non possono essere composti da più di 260 caratteri.

IOException

path è un nome file.

DirectoryNotFoundException

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

L'ordine dei nomi di directory del file restituito e non è garantito. Utilizzare il Sort metodo se è necessario un ordinamento specifico.

searchPattern può essere una combinazione di valore letterale e caratteri jolly caratteri, ma non supporta le espressioni regolari. I seguenti caratteri jolly sono consentiti in searchPattern.

Identificatore con caratteri jolly

Corrispondenze

* (asterisco)

Zero o più caratteri in tale posizione.

? (punto interrogativo)

Zero o un carattere in tale posizione.

I caratteri diversi dal carattere jolly sono caratteri letterali. Ad esempio, il searchPattern stringa "* t" Cerca tutti i nomi in path che terminano con la lettera "t". Il searchPattern "s *" Cerca tutti i nomi di stringa path iniziano con la lettera "s".

searchPattern non può terminare con due punti ("...") o contenere due punti ("...") seguito da DirectorySeparatorChar o AltDirectorySeparatorChar, né può contenere caratteri non validi. È possibile cercare i caratteri non validi usando il metodo GetInvalidPathChars.

System_CAPS_noteNota

Quando si utilizza il carattere jolly asterisco in un searchPattern ad esempio "*. txt", il numero di caratteri nell'estensione specificata influisce la ricerca come segue:

  • Se l'estensione specificata è esattamente tre caratteri, il metodo restituisce i file con estensioni che iniziano con l'estensione specificata. Ad esempio, "xls" restituisce "book.xls" sia "book.xlsx".

  • In tutti gli altri casi, il metodo restituisce i file che corrispondono esattamente l'estensione specificata. Ad esempio, "* interno" restituisce "file.ai" ma non "file.aif".

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

Il path parametro è consentito specificare un percorso relativo o assoluto. Informazioni sul percorso relativo è interpretati rispetto alla directory di lavoro corrente. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.

Il path parametro non è tra maiuscole e minuscole.

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

Nell'esempio seguente viene utilizzata la GetFileSystemEntries metodo per riempire una matrice di stringhe con i nomi di tutti i file che corrispondono a un filtro specificato dall'utente in una posizione specifica e stampa ogni stringa della matrice nella console. Nell'esempio è configurato per intercettare tutti gli errori comuni di 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."); 
            }
        }
    }
}

FileIOPermission

for access to path information for the current directory. Associated enumeration: F:System.Security.Permissions.FileIOPermissionAccess.PathDiscovery

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 1.1
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: