Directory.GetFiles Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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)
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- 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
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
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)
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- 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
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
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 | hello.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)
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- 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 dei file 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
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
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 | hello.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)
- Origine:
- Directory.cs
- Origine:
- Directory.cs
- Origine:
- 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
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.
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 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 | hello.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.
I nomi dei file includono il percorso completo.
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.