Directory.GetFiles Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne les noms des fichiers qui répondent aux critères spécifiés.
Surcharges
GetFiles(String) |
Retourne les noms des fichiers (y compris leur chemin d’accès) dans le répertoire spécifié. |
GetFiles(String, String) |
Retourne les noms des fichiers (y compris leurs chemins d’accès) qui correspondent au modèle de recherche spécifié dans le répertoire spécifié. |
GetFiles(String, String, EnumerationOptions) |
Retourne les noms des fichiers (y compris leurs chemins) qui correspondent au modèle de recherche et aux options d’énumération spécifiés dans le répertoire spécifié. |
GetFiles(String, String, SearchOption) |
Retourne les noms des fichiers (y compris leurs chemins d’accès) qui correspondent au modèle de recherche spécifié dans le répertoire spécifié, en utilisant une valeur pour déterminer s’il faut effectuer une recherche dans les sous-répertoires. |
GetFiles(String)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Retourne les noms des fichiers (y compris leur chemin d’accès) dans le répertoire spécifié.
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()
Paramètres
- path
- String
Le chemin d’accès relatif ou absolu du répertoire où effectuer la recherche. Cette chaîne n'est pas sensible à la casse.
Retours
Tableau des noms complets (y compris les chemins d’accès) pour les fichiers du répertoire spécifié, ou tableau vide si aucun fichier n’est trouvé.
Exceptions
L'appelant n'a pas l'autorisation requise.
.NET Framework et .NET Core versions antérieures à 2.1 : path
est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().
path
a la valeur null
.
Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.
Le chemin spécifié est introuvable ou n’est pas valide (par exemple, il est sur un lecteur non mappé).
Exemples
L’exemple suivant montre comment utiliser la GetFiles méthode pour renvoyer des noms de fichiers à partir d’un emplacement spécifié par l’utilisateur. L’exemple est configuré pour intercepter toutes les erreurs communes à cette méthode.
// 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
Remarques
Les EnumerateFiles méthodes et GetFiles diffèrent comme suit : lorsque vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant que l’ensemble de la collection soit retourné ; lorsque vous utilisez GetFiles, vous devez attendre que l’ensemble du tableau de noms soit retourné avant de pouvoir accéder au tableau. Par conséquent, lorsque vous travaillez avec de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.
Les noms de fichiers retournés sont ajoutés au paramètre fourni path
.
Cette méthode est identique à GetFiles(String, String) l’astérisque (*) spécifié comme modèle de recherche.
Le path
paramètre peut spécifier des informations relatives ou absolues sur le chemin d’accès. Les informations relatives au chemin d’accès sont interprétées comme relatives au répertoire de travail actuel. Pour obtenir le répertoire de travail actuel, consultez GetCurrentDirectory.
L’ordre des noms de fichiers retournés n’est pas garanti ; utilisez la Sort méthode si un ordre de tri spécifique est requis.
Le respect de la casse du path
paramètre correspond à celui du système de fichiers sur lequel le code s’exécute. Par exemple, il ne respecte pas la casse sur NTFS (le système de fichiers Windows par défaut) et respecte la casse sur les systèmes de fichiers Linux.
Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches courantes d’E/S.
Voir aussi
- Fichier et flux de données E/S
- Procédure : lire le texte d’un fichier
- Procédure : écrire du texte dans un fichier
S’applique à
GetFiles(String, String)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Retourne les noms des fichiers (y compris leurs chemins d’accès) qui correspondent au modèle de recherche spécifié dans le répertoire spécifié.
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()
Paramètres
- path
- String
Le chemin d’accès relatif ou absolu du répertoire où effectuer la recherche. Cette chaîne n'est pas sensible à la casse.
- searchPattern
- String
Chaîne recherchée à trouver parmi les noms de fichiers dans path
. Ce paramètre peut contenir une combinaison d’un chemin littéral valide et de caractères génériques (* et ?), mais il ne prend pas en charge les expressions régulières.
Retours
Tableau des noms complets (y compris les chemins d'accès) pour les fichiers du répertoire spécifié qui correspondent au modèle de recherche spécifié, ou un tableau vide si aucun fichier n'est trouvé.
Exceptions
L'appelant n'a pas l'autorisation requise.
.NET Framework et .NET Core versions antérieures à 2.1 : path
est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de GetInvalidPathChars().
- ou -
searchPattern
ne contient pas de modèle valide.
path
ou searchPattern
est null
.
Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.
Le chemin spécifié est introuvable ou n’est pas valide (par exemple, il est sur un lecteur non mappé).
Exemples
L’exemple suivant compte le nombre de fichiers qui commencent par la lettre spécifiée.
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
Remarques
Les noms de fichiers retournés sont ajoutés au paramètre fourni path
et l’ordre des noms de fichiers retournés n’est pas garanti. Utilisez la Sort méthode si un ordre de tri spécifique est requis.
searchPattern
peut être une combinaison de caractères littéraux et génériques, mais elle ne prend pas en charge les expressions régulières. Les spécificateurs génériques suivants sont autorisés dans searchPattern
.
Spécificateur générique | Correspond à |
---|---|
* (astérisque) | Zéro ou plusieurs caractères dans cette position. |
? (point d’interrogation) | Exactement un caractère dans cette position. |
Les caractères autres que le caractère générique sont des caractères littéraux. Par exemple, la searchPattern
chaîne « *t » recherche tous les noms en path
se terminant par la lettre « t ». La searchPattern
chaîne « s* » recherche tous les noms en path
commençant par la lettre « s ».
searchPattern
ne peut pas se terminer par deux points (« .. ») ou contenir deux points (« .. ») suivis de DirectorySeparatorChar ou AltDirectorySeparatorChar, ni contenir des caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars.
Notes
.NET Framework uniquement : Lorsque vous utilisez le caractère générique astérisque dans searchPattern
et que vous spécifiez une extension de fichier à trois caractères, par exemple , « *.txt », cette méthode retourne également les fichiers avec des extensions qui commencent par l’extension spécifiée. Par exemple, le modèle de recherche « *.xls » retourne « book.xls » et « book.xlsx ». Ce comportement se produit uniquement si un astérisque est utilisé dans le modèle de recherche et que l’extension de fichier fournie contient exactement trois caractères. Si vous utilisez le caractère générique de point d’interrogation quelque part dans le modèle de recherche, cette méthode retourne uniquement les fichiers qui correspondent exactement à l’extension de fichier spécifiée. Le tableau suivant illustre cette anomalie dans .NET Framework.
Fichiers dans le répertoire | Modèle de recherche | .NET 5+ retourne | .NET Framework retourne |
---|---|---|---|
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 |
Notes
Étant donné que cette méthode vérifie les noms de fichiers avec le format de nom de fichier 8.3 et le format de nom de fichier long, un modèle de recherche similaire à « *1*.txt » peut renvoyer des noms de fichiers inattendus. Par exemple, l’utilisation d’un modèle de recherche « *1*.txt » renvoie « longfilename.txt », car le format de nom de fichier 8.3 équivalent est « LONGFI~1.TXT ».
Les EnumerateFiles méthodes et GetFiles diffèrent comme suit : lorsque vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant que l’ensemble de la collection soit retourné ; lorsque vous utilisez GetFiles, vous devez attendre que l’ensemble du tableau de noms soit retourné avant de pouvoir accéder au tableau. Par conséquent, lorsque vous travaillez avec de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.
Le path
paramètre peut spécifier des informations relatives ou absolues sur le chemin d’accès. Les informations relatives au chemin d’accès sont interprétées comme relatives au répertoire de travail actuel. Pour obtenir le répertoire de travail actuel, consultez GetCurrentDirectory.
Le respect de la casse du path
paramètre correspond à celui du système de fichiers sur lequel le code s’exécute. Par exemple, il ne respecte pas la casse sur NTFS (le système de fichiers Windows par défaut) et respecte la casse sur les systèmes de fichiers Linux.
Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches courantes d’E/S.
Voir aussi
- Fichier et flux de données E/S
- Procédure : lire le texte d’un fichier
- Procédure : écrire du texte dans un fichier
S’applique à
GetFiles(String, String, EnumerationOptions)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Retourne les noms des fichiers (y compris leurs chemins) qui correspondent au modèle de recherche et aux options d’énumération spécifiés dans le répertoire spécifié.
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()
Paramètres
- path
- String
Le chemin d’accès relatif ou absolu du répertoire où effectuer la recherche. Cette chaîne n'est pas sensible à la casse.
- searchPattern
- String
Chaîne recherchée à trouver parmi les noms de fichiers dans path
. Ce paramètre peut contenir une combinaison d’un chemin littéral valide et de caractères génériques, mais il ne prend pas en charge les expressions régulières.
- enumerationOptions
- EnumerationOptions
Objet qui décrit la configuration de recherche et d’énumération à utiliser.
Retours
Tableau des noms complets (y compris les chemins) pour les fichiers du répertoire spécifié qui correspondent au modèle de recherche et aux options d’énumération spécifiés, ou tableau vide si aucun fichier n'est trouvé.
Exceptions
L'appelant n'a pas l'autorisation requise.
.NET Framework et .NET Core versions antérieures à 2.1 : path
est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de GetInvalidPathChars().
- ou -
searchPattern
ne contient pas de modèle valide.
path
ou searchPattern
est null
.
Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.
Le chemin spécifié est introuvable ou n’est pas valide (par exemple, il est sur un lecteur non mappé).
Remarques
Les noms de fichiers retournés sont ajoutés au paramètre fourni path
et l’ordre des noms de fichiers retournés n’est pas garanti ; utilisez la Sort méthode si un ordre de tri spécifique est requis.
searchPattern
peut être une combinaison de caractères littéral et génériques, mais elle ne prend pas en charge les expressions régulières. Les spécificateurs génériques suivants sont autorisés dans searchPattern
.
Spécificateur générique | Correspond à |
---|---|
* (astérisque) | Zéro ou plus caractères dans cette position. |
? (point d’interrogation) | Exactement un caractère dans cette position. |
Les caractères autres que le caractère générique sont des caractères littérals. Par exemple, la searchPattern
chaîne « *t » recherche tous les noms se path
terminant par la lettre « t ». La searchPattern
chaîne « s* » recherche tous les noms en path
commençant par la lettre « s ».
searchPattern
ne peut pas se terminer par deux points (« .. ») ou contenir deux points (« .. ») suivis de DirectorySeparatorChar ou AltDirectorySeparatorChar, et il ne peut pas non plus contenir des caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars.
Notes
.NET Framework uniquement : Lorsque vous utilisez le caractère générique d’astérisque dans searchPattern
et que vous spécifiez une extension de fichier à trois caractères, par exemple, « *.txt », cette méthode retourne également des fichiers avec des extensions qui commencent par l’extension spécifiée. Par exemple, le modèle de recherche « *.xls » retourne à la fois « book.xls » et « book.xlsx ». Ce comportement se produit uniquement si un astérisque est utilisé dans le modèle de recherche et si l’extension de fichier fournie contient exactement trois caractères. Si vous utilisez le caractère générique de point d’interrogation quelque part dans le modèle de recherche, cette méthode retourne uniquement les fichiers qui correspondent exactement à l’extension de fichier spécifiée. Le tableau suivant illustre cette anomalie dans .NET Framework.
Fichiers dans le répertoire | Modèle de recherche | .NET 5+ retourne | .NET Framework retourne |
---|---|---|---|
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 |
Notes
Étant donné que cette méthode vérifie les noms de fichiers au format de nom de fichier 8.3 et au format de nom de fichier long, un modèle de recherche similaire à « *1*.txt » peut renvoyer des noms de fichiers inattendus. Par exemple, l’utilisation d’un modèle de recherche « *1*.txt » renvoie « longfilename.txt », car le format de nom de fichier 8.3 équivalent est « LONGFI~1.TXT ».
Les EnumerateFiles méthodes et GetFiles diffèrent comme suit : lorsque vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant que l’ensemble de la collection soit retourné ; lorsque vous utilisez GetFiles, vous devez attendre que l’ensemble du tableau de noms soit retourné avant de pouvoir accéder au tableau. Par conséquent, lorsque vous travaillez avec de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.
Le path
paramètre peut spécifier des informations relatives ou absolues sur le chemin d’accès. Les informations relatives au chemin d’accès sont interprétées comme relatives au répertoire de travail actuel. Pour obtenir le répertoire de travail actuel, consultez GetCurrentDirectory.
Le respect de la casse du path
paramètre correspond à celui du système de fichiers sur lequel le code s’exécute. Par exemple, il ne respecte pas la casse sur NTFS (le système de fichiers Windows par défaut) et respecte la casse sur les systèmes de fichiers Linux.
Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches courantes d’E/S.
S’applique à
GetFiles(String, String, SearchOption)
- Source:
- Directory.cs
- Source:
- Directory.cs
- Source:
- Directory.cs
Retourne les noms des fichiers (y compris leurs chemins d’accès) qui correspondent au modèle de recherche spécifié dans le répertoire spécifié, en utilisant une valeur pour déterminer s’il faut effectuer une recherche dans les sous-répertoires.
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()
Paramètres
- path
- String
Le chemin d’accès relatif ou absolu du répertoire où effectuer la recherche. Cette chaîne n'est pas sensible à la casse.
- searchPattern
- String
Chaîne recherchée à trouver parmi les noms de fichiers dans path
. Ce paramètre peut contenir une combinaison d’un chemin littéral valide et de caractères génériques (* et ?), mais il ne prend pas en charge les expressions régulières.
- searchOption
- SearchOption
L’une des valeurs d’énumération qui spécifie si l’opération de recherche doit inclure tous les sous-répertoires ou seulement le répertoire actuel.
Retours
Tableau des noms complets (y compris les chemins d'accès) pour les fichiers du répertoire spécifié qui correspondent au modèle et à l'option de recherche spécifiés, ou tableau vide si aucun fichier n'est trouvé.
Exceptions
.NET Framework et .NET Core versions antérieures à 2.1 : path
est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher les caractères non valides avec la méthode GetInvalidPathChars().
- ou -
searchPattern
ne contient pas un modèle valide.
path
ou searchpattern
est null
.
searchOption
n’est pas une valeur de SearchOption valide.
L'appelant n'a pas l'autorisation requise.
Le chemin spécifié est introuvable ou n’est pas valide (par exemple, il est sur un lecteur non mappé).
Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.
Remarques
Les noms de fichiers retournés sont ajoutés au paramètre path
fourni et l’ordre des noms de fichiers retournés n’est pas garanti ; utilisez la Sort méthode si un ordre de tri spécifique est requis.
searchPattern
peut être une combinaison de caractères littéral et génériques, mais elle ne prend pas en charge les expressions régulières. Les spécificateurs génériques suivants sont autorisés dans searchPattern
.
Spécificateur générique | Correspond à |
---|---|
* (astérisque) | Zéro ou plus caractères dans cette position. |
? (point d’interrogation) | Exactement un caractère dans cette position. |
Les caractères autres que le caractère générique sont des caractères littérals. Par exemple, la searchPattern
chaîne « *t » recherche tous les noms se path
terminant par la lettre « t ». La searchPattern
chaîne « s* » recherche tous les noms en path
commençant par la lettre « s ».
searchPattern
ne peut pas se terminer par deux points (« .. ») ou contenir deux points (« .. ») suivis de DirectorySeparatorChar ou AltDirectorySeparatorChar, et il ne peut pas non plus contenir des caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars.
Notes
.NET Framework uniquement : Lorsque vous utilisez le caractère générique d’astérisque dans searchPattern
et que vous spécifiez une extension de fichier à trois caractères, par exemple, « *.txt », cette méthode retourne également des fichiers avec des extensions qui commencent par l’extension spécifiée. Par exemple, le modèle de recherche « *.xls » retourne à la fois « book.xls » et « book.xlsx ». Ce comportement se produit uniquement si un astérisque est utilisé dans le modèle de recherche et si l’extension de fichier fournie contient exactement trois caractères. Si vous utilisez le caractère générique de point d’interrogation quelque part dans le modèle de recherche, cette méthode retourne uniquement les fichiers qui correspondent exactement à l’extension de fichier spécifiée. Le tableau suivant illustre cette anomalie dans .NET Framework.
Fichiers dans le répertoire | Modèle de recherche | .NET 5+ retourne | .NET Framework retourne |
---|---|---|---|
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 |
Notes
Étant donné que cette méthode vérifie les noms de fichiers au format de nom de fichier 8.3 et au format de nom de fichier long, un modèle de recherche similaire à « *1*.txt » peut renvoyer des noms de fichiers inattendus. Par exemple, l’utilisation d’un modèle de recherche « *1*.txt » renvoie « longfilename.txt », car le format de nom de fichier 8.3 équivalent est « LONGFI~1.TXT ».
Les EnumerateFiles méthodes et GetFiles diffèrent comme suit : lorsque vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant que l’ensemble de la collection soit retourné ; lorsque vous utilisez GetFiles, vous devez attendre que l’ensemble du tableau de noms soit retourné avant de pouvoir accéder au tableau. Par conséquent, lorsque vous travaillez avec de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.
Les noms de fichiers incluent le chemin d’accès complet.
Le path
paramètre peut spécifier des informations relatives ou absolues sur le chemin d’accès. Les informations relatives au chemin d’accès sont interprétées comme relatives au répertoire de travail actuel. Pour obtenir le répertoire de travail actuel, consultez GetCurrentDirectory.
Le respect de la casse du path
paramètre correspond à celui du système de fichiers sur lequel le code s’exécute. Par exemple, il ne respecte pas la casse sur NTFS (le système de fichiers Windows par défaut) et respecte la casse sur les systèmes de fichiers Linux.
Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches courantes d’E/S.
Voir aussi
- Fichier et flux de données E/S
- Procédure : lire le texte d’un fichier
- Procédure : écrire du texte dans un fichier