Directory.GetFiles Méthode

Définition

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)

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

String[]

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

path est un nom de fichier.

- ou -

Une erreur réseau s’est produite.

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

S’applique à

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é.

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

String[]

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

path est un nom de fichier.

- ou -

Une erreur réseau s’est produite.

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 ello.txt, hello.txt ello.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

S’applique à

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é.

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 de recherche à faire correspondre avec les noms de sous-répertoires 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

String[]

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

path est un nom de fichier.

- ou -

Une erreur réseau s’est produite.

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 ello.txt, hello.txt ello.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)

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

String[]

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.

path est un nom de fichier.

- ou -

Une erreur réseau s’est produite.

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 ello.txt, hello.txt ello.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

S’applique à