Directory.GetFiles Metodo

Definizione

Restituisce i nomi dei file che soddisfano i criteri specificati.

Overload

GetFiles(String)

Restituisce i nomi dei file, inclusi i relativi percorsi, nella directory specificata.

GetFiles(String, String)

Restituisce i nomi dei file (inclusi i percorsi) corrispondenti al criterio di ricerca specificato nella directory specificata.

GetFiles(String, String, EnumerationOptions)

Restituisce i nomi dei file (inclusi i percorsi) corrispondenti al criterio di ricerca e alle opzioni di enumerazione specificati nella directory specificata.

GetFiles(String, String, SearchOption)

Restituisce i nomi dei file (inclusi i percorsi) che corrispondono ai criteri di ricerca specificati nella directory specificata, utilizzando un valore per determinare se eseguire la ricerca nelle sottodirectory.

GetFiles(String)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Restituisce i nomi dei file, inclusi i relativi percorsi, nella directory specificata.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path);
public static string[] GetFiles (string path);
static member GetFiles : string -> string[]
Public Shared Function GetFiles (path As String) As String()

Parametri

path
String

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

Restituisce

String[]

Una matrice dei nomi completi (inclusi i percorsi) per i file nella directory specificata o una matrice vuota se non viene trovato alcun file.

Eccezioni

path è un nome file.

-oppure-

Si è verificato un errore di rete.

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 cercare i caratteri non validi usando il metodo GetInvalidPathChars().

path è null.

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

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

Esempio

Nell'esempio seguente viene illustrato come utilizzare il GetFiles metodo per restituire i nomi di file da un percorso specificato dall'utente. L'esempio è configurato per rilevare tutti gli errori comuni a questo metodo.

// For Directory::GetFiles and Directory::GetDirectories
// For File::Exists, Directory::Exists
using namespace System;
using namespace System::IO;
using namespace System::Collections;

// Insert logic for processing found files here.
void ProcessFile( String^ path )
{
   Console::WriteLine( "Processed file '{0}'.", path );
}


// Process all files in the directory passed in, recurse on any directories 
// that are found, and process the files they contain.
void ProcessDirectory( String^ targetDirectory )
{
   
   // Process the list of files found in the directory.
   array<String^>^fileEntries = Directory::GetFiles( targetDirectory );
   IEnumerator^ files = fileEntries->GetEnumerator();
   while ( files->MoveNext() )
   {
      String^ fileName = safe_cast<String^>(files->Current);
      ProcessFile( fileName );
   }

   
   // Recurse into subdirectories of this directory.
   array<String^>^subdirectoryEntries = Directory::GetDirectories( targetDirectory );
   IEnumerator^ dirs = subdirectoryEntries->GetEnumerator();
   while ( dirs->MoveNext() )
   {
      String^ subdirectory = safe_cast<String^>(dirs->Current);
      ProcessDirectory( subdirectory );
   }
}

int main( int argc, char *argv[] )
{
   for ( int i = 1; i < argc; i++ )
   {
      String^ path = gcnew String(argv[ i ]);
      if ( File::Exists( path ) )
      {
         
         // This path is a file
         ProcessFile( path );
      }
      else
      if ( Directory::Exists( path ) )
      {
         
         // This path is a directory
         ProcessDirectory( path );
      }
      else
      {
         Console::WriteLine( "{0} is not a valid file or directory.", path );
      }

   }
}
// For Directory.GetFiles and Directory.GetDirectories
// For File.Exists, Directory.Exists
using System;
using System.IO;
using System.Collections;

public class RecursiveFileProcessor
{
    public static void Main(string[] args)
    {
        foreach(string path in args)
        {
            if(File.Exists(path))
            {
                // This path is a file
                ProcessFile(path);
            }
            else if(Directory.Exists(path))
            {
                // This path is a directory
                ProcessDirectory(path);
            }
            else
            {
                Console.WriteLine("{0} is not a valid file or directory.", path);
            }
        }
    }

    // Process all files in the directory passed in, recurse on any directories
    // that are found, and process the files they contain.
    public static void ProcessDirectory(string targetDirectory)
    {
        // Process the list of files found in the directory.
        string [] fileEntries = Directory.GetFiles(targetDirectory);
        foreach(string fileName in fileEntries)
            ProcessFile(fileName);

        // Recurse into subdirectories of this directory.
        string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
        foreach(string subdirectory in subdirectoryEntries)
            ProcessDirectory(subdirectory);
    }

    // Insert logic for processing found files here.
    public static void ProcessFile(string path)
    {
        Console.WriteLine("Processed file '{0}'.", path);	
    }
}
module RecursiveFileProcessor

open System.IO

// Insert logic for processing found files here.
let processFile path =
    printfn $"Processed file '%s{path}'."

// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
let rec processDirectory targetDirectory =
    // Process the list of files found in the directory.
    let fileEntries = Directory.GetFiles targetDirectory
    for fileName in fileEntries do
        processFile fileName

    // Recurse into subdirectories of this directory.
    let subdirectoryEntries = Directory.GetDirectories targetDirectory
    for subdirectory in subdirectoryEntries do
        processDirectory subdirectory

[<EntryPoint>]
let main args =
    for path in args do
        if File.Exists path then
            // This path is a file
            processFile path
        elif Directory.Exists path then
            // This path is a directory
            processDirectory path
        else
            printfn $"{path} is not a valid file or directory."
    0
' For Directory.GetFiles and Directory.GetDirectories
' For File.Exists, Directory.Exists 

Imports System.IO
Imports System.Collections

Public Class RecursiveFileProcessor

    Public Overloads Shared Sub Main(ByVal args() As String)
        Dim path As String
        For Each path In args
            If File.Exists(path) Then
                ' This path is a file.
                ProcessFile(path)
            Else
                If Directory.Exists(path) Then
                    ' This path is a directory.
                    ProcessDirectory(path)
                Else
                    Console.WriteLine("{0} is not a valid file or directory.", path)
                End If
            End If
        Next path
    End Sub


    ' Process all files in the directory passed in, recurse on any directories 
    ' that are found, and process the files they contain.
    Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
        Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
        ' Process the list of files found in the directory.
        Dim fileName As String
        For Each fileName In fileEntries
            ProcessFile(fileName)

        Next fileName
        Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)
        ' Recurse into subdirectories of this directory.
        Dim subdirectory As String
        For Each subdirectory In subdirectoryEntries
            ProcessDirectory(subdirectory)
        Next subdirectory

    End Sub

    ' Insert logic for processing found files here.
    Public Shared Sub ProcessFile(ByVal path As String)
        Console.WriteLine("Processed file '{0}'.", path)
    End Sub
End Class

Commenti

I EnumerateFiles metodi e GetFiles differiscono nel modo seguente: quando si utilizza EnumerateFiles, è possibile iniziare a enumerare la raccolta di nomi prima che venga restituita l'intera raccolta. Quando si utilizza GetFiles, è 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, EnumerateFiles può essere più efficiente.

I nomi di file restituiti vengono aggiunti al parametro fornito path .

Questo metodo è identico all'asterisco GetFiles(String, String) (*) specificato come modello di ricerca.

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

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

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

GetFiles(String, String)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Restituisce i nomi dei file (inclusi i percorsi) corrispondenti al criterio di ricerca specificato nella directory specificata.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern);
public static string[] GetFiles (string path, string searchPattern);
static member GetFiles : string * string -> string[]
Public Shared Function GetFiles (path As String, searchPattern As String) As String()

Parametri

path
String

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

searchPattern
String

Stringa di ricerca in base alla quale confrontare i nomi dei file in path. Questo parametro può contenere una combinazione di caratteri del percorso letterale e caratteri jolly (* e ?) validi, ma non supporta le espressioni regolari.

Restituisce

String[]

Una matrice dei nomi completi (inclusi i percorsi) per i file nella directory specificata corrispondenti al criterio di ricerca specificato oppure una matrice vuota se non viene trovato alcun file.

Eccezioni

path è un nome file.

-oppure-

Si è verificato un errore di rete.

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. Per cercare i caratteri non validi, usare GetInvalidPathChars().

-oppure-

searchPattern non contiene un criterio valido.

path o searchPattern è null.

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

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

Esempio

Nell'esempio seguente viene conteggiato il numero di file che iniziano con la lettera specificata.

using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      
      // Only get files that begin with the letter "c".
      array<String^>^dirs = Directory::GetFiles( "c:\\", "c*" );
      Console::WriteLine( "The number of files starting with c is {0}.", dirs->Length );
      Collections::IEnumerator^ myEnum = dirs->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         Console::WriteLine( myEnum->Current );
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}
using System;
using System.IO;

class Test
{
    public static void Main()
    {
        try
        {
            // Only get files that begin with the letter "c".
            string[] dirs = Directory.GetFiles(@"c:\", "c*");
            Console.WriteLine("The number of files starting with c is {0}.", dirs.Length);
            foreach (string dir in dirs)
            {
                Console.WriteLine(dir);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
open System.IO

try
    // Only get files that begin with the letter "c".
    let dirs = Directory.GetFiles(@"c:\", "c*")
    printfn $"The number of files starting with c is {dirs.Length}."
    for dir in dirs do
        printfn $"{dir}"
with e ->
    printfn $"The process failed: {e}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Try
            ' Only get files that begin with the letter "c".
            Dim dirs As String() = Directory.GetFiles("c:\", "c*")
            Console.WriteLine("The number of files starting with c is {0}.", dirs.Length)
            Dim dir As String
            For Each dir In dirs
                Console.WriteLine(dir)
            Next
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

Commenti

I nomi di file restituiti vengono aggiunti al parametro fornito path e l'ordine dei nomi di file 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 con caratteri 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 dai caratteri jolly sono caratteri letterali. Ad esempio, la searchPattern stringa "*t" cerca tutti i nomi che path terminano con la lettera "t". La searchPattern stringa "s*" cerca tutti i nomi che iniziano path 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 cercare i caratteri non validi usando il metodo GetInvalidPathChars.

Nota

Solo .NET Framework: Quando si usa il carattere jolly asterisco in searchPattern e si specifica un'estensione di file a tre caratteri, ad esempio "*.txt", questo metodo restituisce anche i file con estensioni che iniziano con l'estensione specificata. Ad esempio, il criterio di ricerca "*.xls" restituisce sia "book.xls" che "book.xlsx". Questo comportamento si verifica solo se viene usato un asterisco nel criterio di ricerca e l'estensione di file fornita è esattamente tre caratteri. Se si utilizza il carattere jolly del punto interrogativo in un punto qualsiasi nel criterio di ricerca, questo metodo restituisce solo i file che corrispondono esattamente all'estensione di file specificata. La tabella seguente illustra questa anomalia in .NET Framework.

File nella directory Modello di ricerca .NET 5+ restituisce .NET Framework restituisce
file.ai, file.aif *.ai file.ai file.ai
book.xls, book.xlsx *.xls book.xls book.xls, book.xlsx
ello.txt, hello.txt, hello.txtt ?ello.txt ello.txt, hello.txt ello.txt, hello.txt

Nota

Poiché questo metodo controlla i nomi di file con il formato del nome file 8.3 e il formato di nome file lungo, un criterio di ricerca simile a "*1*.txt" potrebbe restituire nomi di file imprevisti. Ad esempio, l'utilizzo di un modello di ricerca "*1*.txt" restituisce "longfilename.txt" perché il formato del nome file 8.3 equivalente è "LONGFI~1.TXT".

I EnumerateFiles metodi e GetFiles differiscono nel modo seguente: quando si utilizza EnumerateFiles, è possibile iniziare a enumerare la raccolta di nomi prima che venga restituita l'intera raccolta. Quando si utilizza GetFiles, è 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, EnumerateFiles può essere più efficiente.

Il path parametro può specificare informazioni relative o assolute sul percorso. Le informazioni relative sul percorso 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, è senza distinzione tra maiuscole e minuscole in NTFS (file system windows predefinito) e distinzione tra maiuscole e minuscole nei file system Linux.

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

Vedi anche

Si applica a

GetFiles(String, String, EnumerationOptions)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Restituisce i nomi dei file (inclusi i percorsi) corrispondenti al criterio di ricerca e alle opzioni di enumerazione specificati nella directory specificata.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetFiles : string * string * System.IO.EnumerationOptions -> string[]
Public Shared Function GetFiles (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. Stringa senza distinzione tra maiuscole e minuscole.

searchPattern
String

Stringa di ricerca in base alla quale confrontare i nomi delle sottodirectory in path. Questo parametro può contenere una combinazione di caratteri letterali e caratteri jolly validi, ma non supporta le espressioni regolari.

enumerationOptions
EnumerationOptions

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

Restituisce

String[]

Una matrice dei nomi completi (inclusi i percorsi) per i file nella directory specificata corrispondenti al criterio di ricerca e alle opzioni di enumerazione specificati oppure una matrice vuota se non viene trovato alcun file.

Eccezioni

path è un nome file.

-oppure-

Si è verificato un errore di rete.

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti a 2.1: path è una stringa di lunghezza zero, contiene solo spazio vuoto o contiene uno o più caratteri non validi. Per cercare i caratteri non validi, usare GetInvalidPathChars().

-oppure-

searchPattern non contiene un criterio valido.

path o searchPattern è null.

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

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

Commenti

I nomi di file restituiti vengono aggiunti al parametro fornito path e l'ordine dei nomi di file restituiti non è garantito. Utilizzare il Sort metodo se è necessario un ordine di ordinamento specifico.

searchPattern può essere una combinazione di caratteri letterali e jolly, ma non supporta espressioni regolari. Gli identificatori jolly seguenti sono consentiti in searchPattern.

Identificatore jolly Corrispondenze
* (asterisco) Zero o più caratteri in tale posizione.
? (punto interrogativo) Esattamente un carattere in tale 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 in path inizio con la lettera "s".

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

Nota

Solo .NET Framework: Quando si usa il carattere jolly asterisco in searchPattern e si specifica un'estensione di file a tre caratteri, ad esempio "*.txt", questo metodo restituisce anche file con estensioni che iniziano con l'estensione specificata. Ad esempio, il modello di ricerca "*.xls" restituisce sia "book.xls" sia "book.xlsx". Questo comportamento si verifica solo se un asterisco viene usato nel modello di ricerca e l'estensione del file fornita è esattamente tre caratteri. Se si usa il carattere jolly punto interrogativo in un punto qualsiasi nel modello di ricerca, questo metodo restituisce solo file che corrispondono esattamente all'estensione di file specificata. Nella tabella seguente viene illustrata questa anomalia in .NET Framework.

File nella directory Modello di ricerca .NET 5+ restituisce .NET Framework restituisce
file.ai, file.aif *.ai file.ai file.ai
book.xls, book.xlsx *.xls book.xls book.xls, book.xlsx
ello.txt, hello.txt, hello.txtt ?ello.txt ello.txt, hello.txt ello.txt, hello.txt

Nota

Poiché questo metodo controlla i nomi di file con il formato nome file 8.3 e il formato di nome file lungo, un modello di ricerca simile a "*1*.txt" potrebbe restituire nomi di file imprevisti. Ad esempio, usando un modello di ricerca "*1*.txt" restituisce "longfilename.txt" perché il formato del nome file 8.3 equivalente è "LONGFI~1.TXT".

I EnumerateFiles metodi e GetFiles differiscono come indicato di seguito: quando si usa EnumerateFiles, è possibile iniziare a enumerare la raccolta di nomi prima che venga restituita l'intera raccolta. Quando si usa GetFiles, è necessario attendere che venga restituita l'intera matrice di nomi prima di poter accedere alla matrice. Pertanto, quando si utilizzano molti file e directory, EnumerateFiles può essere più efficiente.

Il path parametro può specificare informazioni sul percorso relativo o assoluto. Le informazioni relative sul percorso 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, è senza distinzione tra maiuscole e minuscole in NTFS (file system windows predefinito) e distinzione tra maiuscole e minuscole nei file system Linux.

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

Si applica a

GetFiles(String, String, SearchOption)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Restituisce i nomi dei file (inclusi i percorsi) che corrispondono ai criteri di ricerca specificati nella directory specificata, utilizzando un valore per determinare se eseguire la ricerca nelle sottodirectory.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetFiles (string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetFiles : string * string * System.IO.SearchOption -> string[]
Public Shared Function GetFiles (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. Stringa senza distinzione tra maiuscole e minuscole.

searchPattern
String

Stringa di ricerca in base alla quale confrontare i nomi dei file in path. Questo parametro può contenere una combinazione di caratteri del percorso letterale e caratteri jolly (* e ?) validi, ma non supporta le espressioni regolari.

searchOption
SearchOption

Uno dei valori di enumerazione che specifica se l'operazione di ricerca deve includere tutte le sottodirectory o la sottodirectory corrente.

Restituisce

String[]

Una matrice dei nomi completi (inclusi i percorsi) per i file nella directory specificata corrispondenti al criterio e all'opzione di ricerca specificati oppure una matrice vuota se non viene trovato alcun file.

Eccezioni

.NET Framework e versioni di .NET Core precedenti a 2.1: path è una stringa di lunghezza zero, contiene solo spazio vuoto o contiene uno o più caratteri non validi. Per cercare i caratteri non validi, usare il metodo GetInvalidPathChars().

-oppure-

searchPattern non contiene un modello valido.

path o searchpattern è null.

searchOption non è un valore valido di SearchOption.

Il chiamante non dispone dell'autorizzazione richiesta.

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

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

path è un nome file.

-oppure-

Si è verificato un errore di rete.

Commenti

I nomi di file restituiti vengono aggiunti al parametro path fornito e l'ordine dei nomi di file restituiti non è garantito. Utilizzare il Sort metodo se è necessario un ordine di ordinamento specifico.

searchPattern può essere una combinazione di caratteri letterali e jolly, ma non supporta espressioni regolari. Gli identificatori jolly seguenti sono consentiti in searchPattern.

Identificatore jolly Corrispondenze
* (asterisco) Zero o più caratteri in tale posizione.
? (punto interrogativo) Esattamente un carattere in tale posizione.

I caratteri diversi dal carattere jolly sono caratteri letterali. Ad esempio, la searchPattern stringa "*t" cerca tutti i nomi che path terminano con la lettera "t". La searchPattern stringa "s*" cerca tutti i nomi che iniziano path 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 cercare i caratteri non validi usando il metodo GetInvalidPathChars.

Nota

Solo .NET Framework: Quando si usa il carattere jolly asterisco in searchPattern e si specifica un'estensione di file a tre caratteri, ad esempio "*.txt", questo metodo restituisce anche i file con estensioni che iniziano con l'estensione specificata. Ad esempio, il criterio di ricerca "*.xls" restituisce sia "book.xls" che "book.xlsx". Questo comportamento si verifica solo se viene usato un asterisco nel criterio di ricerca e l'estensione di file fornita è esattamente tre caratteri. Se si utilizza il carattere jolly del punto interrogativo in un punto qualsiasi nel criterio di ricerca, questo metodo restituisce solo i file che corrispondono esattamente all'estensione di file specificata. La tabella seguente illustra questa anomalia in .NET Framework.

File nella directory Modello di ricerca .NET 5+ restituisce .NET Framework restituisce
file.ai, file.aif *.ai file.ai file.ai
book.xls, book.xlsx *.xls book.xls book.xls, book.xlsx
ello.txt, hello.txt, hello.txtt ?ello.txt ello.txt, hello.txt ello.txt, hello.txt

Nota

Poiché questo metodo controlla i nomi di file con il formato del nome file 8.3 e il formato di nome file lungo, un criterio di ricerca simile a "*1*.txt" potrebbe restituire nomi di file imprevisti. Ad esempio, l'utilizzo di un modello di ricerca "*1*.txt" restituisce "longfilename.txt" perché il formato del nome file 8.3 equivalente è "LONGFI~1.TXT".

I EnumerateFiles metodi e GetFiles differiscono nel modo seguente: quando si utilizza EnumerateFiles, è possibile iniziare a enumerare la raccolta di nomi prima che venga restituita l'intera raccolta. Quando si utilizza GetFiles, è 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, EnumerateFiles può essere più efficiente.

I nomi di file includono il percorso completo.

Il path parametro può specificare informazioni relative o assolute sul percorso. Le informazioni relative sul percorso 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