Windows Dev Center

Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Informazioni
L'argomento richiesto è visualizzato di seguito, ma non è incluso in questa libreria.

Metodo Directory.GetFileSystemEntries (String, String)

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
Tipo: System.String
Il percorso relativo o assoluto della directory da ricercare. Stringa senza distinzione tra maiuscole e minuscole.
searchPattern
Tipo: System.String
Stringa di ricerca in base alla quale confrontare i nomi del file e delle directory in path. In questo parametro può essere contenuta una combinazione di caratteri del percorso letterali e caratteri jolly (* e ?) validi (vedere la sezione Note), ma le espressioni regolari non sono supportate.

Valore restituito

Tipo: 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.

EccezioneCondizione
UnauthorizedAccessException

Il chiamante non dispone dell'autorizzazione richiesta.

ArgumentException

path è una stringa di lunghezza zero, contiene solo spazi vuoti oppure uno o più caratteri non validi. È possibile eseguire una query per i caratteri non validi con il metodo GetInvalidPathChars.

-oppure-

searchPattern non contiene un criterio valido.

ArgumentNullException

path o searchPattern è null.

PathTooLongException

Il percorso, il nome file o entrambi superano la lunghezza massima definita dal sistema. Su piattaforme Windows, ad esempio, i percorsi devono essere composti da un numero di caratteri inferiore a 248 e i nomi file devono essere composti da un numero di caratteri inferiore a 260.

IOException

path è un nome di file.

DirectoryNotFoundException

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

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

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

Identificatore 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. Con la stringa searchPattern "*t", ad esempio, viene eseguita la ricerca in path di tutti i nomi che terminano con la lettera "t". Con la stringa searchPattern "s*" viene eseguita la ricerca in path di tutti i nomi che iniziano con la lettera "s".

searchPattern non può terminare con due punti ("..") o contenere due punti ("..") seguiti da DirectorySeparatorChar o AltDirectorySeparatorChar, né può contenere caratteri non validi. È possibile eseguire una query per i caratteri non validi utilizzando il metodo GetInvalidPathChars.

NotaNota

Quando si utilizza il carattere jolly asterisco in un searchPattern come "*.txt", il numero di caratteri con l'estensione specificata ha effetto sulla ricerca come segue:

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

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

Quando si utilizza il carattere jolly punto interrogativo (?), questo metodo restituirà solo i file corrispondenti all'estensione di file specificata. Ad esempio, in presenza di due file, "file1.txt" e "file1.txtother" contenuti in una directory, il criterio di ricerca "file?.txt" restituirà solamente il primo file, mentre il criterio di ricerca "file*.txt" li restituirà entrambi.

Il parametro path è consentito per specificare le informazioni su un percorso relativo o assoluto. Le informazioni sul percorso relativo sono interpretate rispetto alla directory di lavoro corrente. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.

Il parametro path non prevede la distinzione tra maiuscole e minuscole.

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

Nell'esempio riportato di seguito viene utilizzato il metodo GetFileSystemEntries per riempire una matrice di stringhe con i nomi di tutti i file che corrispondono a un filtro specificato dall'utente in un determinato percorso e ogni stringa della matrice viene stampata nella console. L'esempio è configurato per intercettare 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."); 
            }
        }
    }
}


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

Mostra:
© 2015 Microsoft