Directory.EnumerateFiles Méthode

Définition

Retourne une collection énumérable de noms de fichiers complets qui répondent à des critères spécifiés.Returns an enumerable collection of full file names that meet specified criteria.

Surcharges

EnumerateFiles(String, String, EnumerationOptions)

Retourne une collection énumérable des noms de fichiers complets qui correspondent à un modèle de recherche et à des options d’énumération dans un chemin spécifié, et recherche éventuellement dans les sous-répertoires.Returns an enumerable collection of full file names that match a search pattern and enumeration options in a specified path, and optionally searches subdirectories.

EnumerateFiles(String, String, SearchOption)

Retourne une collection énumérable des noms de fichiers complets qui correspondent à un modèle de recherche dans un chemin spécifié, et effectue éventuellement des recherches dans les sous-répertoires.Returns an enumerable collection of full file names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFiles(String)

Retourne une collection énumérable de noms de fichiers complets dans un chemin spécifié.Returns an enumerable collection of full file names in a specified path.

EnumerateFiles(String, String)

Retourne une collection énumérable des noms de fichiers complets qui correspondent à un modèle de recherche dans un chemin spécifié.Returns an enumerable collection of full file names that match a search pattern in a specified path.

EnumerateFiles(String, String, EnumerationOptions)

Retourne une collection énumérable des noms de fichiers complets qui correspondent à un modèle de recherche et à des options d’énumération dans un chemin spécifié, et recherche éventuellement dans les sous-répertoires.Returns an enumerable collection of full file names that match a search pattern and enumeration options in a specified path, and optionally searches subdirectories.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateFiles : string * string * System.IO.EnumerationOptions -> seq<string>

Paramètres

path
String

Le chemin d’accès relatif ou absolu du répertoire où effectuer la recherche.The relative or absolute path to the directory to search. Cette chaîne n'est pas sensible à la casse.This string is not case-sensitive.

searchPattern
String

Chaîne recherchée à trouver parmi les noms de fichiers dans path.The search string to match against the names of files in 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.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

enumerationOptions
EnumerationOptions

Objet qui décrit la configuration de recherche et d’énumération à utiliser.An object that describes the search and enumeration configuration to use.

Retours

Collection énumérable des noms complets (chemins compris) pour les fichiers du répertoire spécifié par path et qui correspondent au modèle de recherche et aux options d’énumération spécifiés.An enumerable collection of the full names (including paths) for the files in the directory specified by path and that match the specified search pattern and enumeration options.

Exceptions

path est une chaîne de longueur nulle, contient seulement un espace ou contient des caractères non valides.path is a zero-length string, contains only white space, or contains invalid characters. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

- ou --or- searchPattern ne contient pas un modèle valide.searchPattern does not contain a valid pattern.

path a la valeur null.path is null.

- ou --or- searchPattern a la valeur null.searchPattern is null.

searchOption n’est pas une valeur de SearchOption valide.searchOption is not a valid SearchOption value.

path n’est pas valide, notamment s’il fait référence à un lecteur non mappé.path is invalid, such as referring to an unmapped drive.

path est un nom de fichier.path is a file name.

Le chemin d’accès et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.The specified path, file name, or combined exceed the system-defined maximum length.

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

Remarques

searchPattern peut être une combinaison de caractères littéraux et de caractères génériques, mais elle ne prend pas en charge les expressions régulières.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Les spécificateurs de caractères génériques suivants sont autorisés dans searchPattern.The following wildcard specifiers are permitted in searchPattern.

Spécificateur de caractère génériqueWildcard specifier CorrespondancesMatches
* (astérisque)* (asterisk) Zéro, un ou plusieurs caractères dans cette position.Zero or more characters in that position.
?? (point d’interrogation)(question mark) Zéro ou un caractère dans cette position.Zero or one character in that position.

Les caractères autres que le caractère générique sont des caractères littéraux.Characters other than the wildcard are literal characters. Par exemple, la searchPattern chaîne «*t » recherche tous les noms dans path se terminant par la lettre « t ».For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". La searchPattern chaîne « s*» recherche tous les noms dans path en commençant par la lettre « s ».The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Notes

Lorsque vous utilisez le caractère générique astérisque dans une searchPattern telle que «*. txt », le nombre de caractères dans l’extension spécifiée affecte la recherche comme suit :When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Si l’extension spécifiée fait exactement trois caractères, la méthode retourne des fichiers avec des extensions qui commencent par l’extension spécifiée.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Par exemple, «*. xls » retourne « Book. xls » et « Book. xlsx ».For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Dans tous les autres cas, la méthode retourne des fichiers qui correspondent exactement à l’extension spécifiée.In all other cases, the method returns files that exactly match the specified extension. Par exemple, «*. ai » retourne « file.ai », mais pas « file. AIF ».For example, "*.ai" returns "file.ai" but not "file.aif".

Lorsque vous utilisez le caractère générique point d’interrogation, cette méthode retourne uniquement les fichiers qui correspondent à l’extension de fichier spécifiée.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Par exemple, à partir de deux fichiers, « fichier1. txt » et « fichier1. txtother », dans un répertoire, un modèle de recherche «fichier ?. txt "retourne uniquement le premier fichier, tandis qu’un modèle de recherche de" fichier*. txt "retourne les deux fichiers.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

searchPattern ne peut pas se terminer par deux points (".."), ni contenir deux points ("..") suivis de DirectorySeparatorChar ou AltDirectorySeparatorChar, ni contenir de caractères non valides.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars.You can query for invalid characters by using the GetInvalidPathChars method.

Vous pouvez spécifier des informations relatives au chemin d’accès relatif avec le paramètre path.You can specify relative path information with the path parameter. Les informations relatives au chemin d’accès relatif sont interprétées par rapport au répertoire de travail actuel, que vous pouvez déterminer à l’aide de la méthode GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

Les méthodes EnumerateFiles et GetFiles diffèrent comme suit : quand vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant de retourner la collection entière. Lorsque vous utilisez GetFiles, vous devez attendre que l’intégralité du tableau de noms soit retournée avant de pouvoir accéder au tableau.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Par conséquent, lorsque vous travaillez avec de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

La collection retournée n’est pas mise en cache ; chaque appel à la GetEnumerator sur la collection démarre une nouvelle énumération.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateFiles(String, String, SearchOption)

Retourne une collection énumérable des noms de fichiers complets qui correspondent à un modèle de recherche dans un chemin spécifié, et effectue éventuellement des recherches dans les sous-répertoires.Returns an enumerable collection of full file names that match a search pattern in a specified path, and optionally searches subdirectories.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateFiles : string * string * System.IO.SearchOption -> seq<string>

Paramètres

path
String

Le chemin d’accès relatif ou absolu du répertoire où effectuer la recherche.The relative or absolute path to the directory to search. Cette chaîne n'est pas sensible à la casse.This string is not case-sensitive.

searchPattern
String

Chaîne recherchée à trouver parmi les noms de fichiers dans path.The search string to match against the names of files in 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.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption

Une des valeurs d'énumération qui spécifie si l'opération de recherche doit inclure seulement le répertoire actuel ou si elle doit inclure tous les sous-répertoires.One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories. La valeur par défaut est TopDirectoryOnly.The default value is TopDirectoryOnly.

Retours

Collection énumérable des noms complets (chemins compris) pour les fichiers du répertoire spécifié par path et qui correspondent au modèle et à l’option de recherche spécifiés.An enumerable collection of the full names (including paths) for the files in the directory specified by path and that match the specified search pattern and search option.

Exceptions

path est une chaîne de longueur nulle, contient seulement un espace ou contient des caractères non valides.path is a zero-length string, contains only white space, or contains invalid characters. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

- ou --or- searchPattern ne contient pas un modèle valide.searchPattern does not contain a valid pattern.

path a la valeur null.path is null.

- ou --or- searchPattern a la valeur null.searchPattern is null.

searchOption n’est pas une valeur de SearchOption valide.searchOption is not a valid SearchOption value.

path n’est pas valide, notamment s’il fait référence à un lecteur non mappé.path is invalid, such as referring to an unmapped drive.

path est un nom de fichier.path is a file name.

Le chemin d’accès et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.The specified path, file name, or combined exceed the system-defined maximum length.

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

Exemples

L’exemple suivant montre comment récupérer tous les fichiers texte d’un répertoire et de ses sous-répertoires, puis les déplacer vers un nouveau répertoire.The following example shows how to retrieve all the text files in a directory and its subdirectories, and move them to a new directory. Une fois les fichiers déplacés, ils n’existent plus dans les répertoires d’origine.After the files are moved, they no longer exist in the original directories.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories);

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories)

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

L’exemple suivant énumère de manière récursive tous les fichiers qui ont une extension. txt, lit chaque ligne du fichier et affiche la ligne si elle contient la chaîne « Microsoft ».The following example recursively enumerates all files that have a .txt extension, reads each line of the file, and displays the line if it contains the string "Microsoft".

using System;
using System.IO;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath =
            Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file)
                        where line.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine($"{f.File}\t{f.Line}");
            }
            Console.WriteLine($"{files.Count().ToString()} files found.");
        }
        catch (UnauthorizedAccessException uAEx)
        {
            Console.WriteLine(uAEx.Message);
        }
        catch (PathTooLongException pathEx)
        {
            Console.WriteLine(pathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Xml.Linq

Module Module1

    Sub Main()
        Try
            Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        From line In File.ReadLines(chkFile)
                        Where line.Contains("Microsoft")
                        Select New With {.curFile = chkFile, .curLine = line}

            For Each f In files
                Console.WriteLine($"{f.File}\t{f.Line}")
            Next
            Console.WriteLine($"{files.Count} files found.")
        Catch uAEx As UnauthorizedAccessException
            Console.WriteLine(uAEx.Message)
        Catch pathEx As PathTooLongException
            Console.WriteLine(pathEx.Message)
        End Try
    End Sub
End Module

Remarques

searchPattern peut être une combinaison de caractères littéraux et de caractères génériques, mais elle ne prend pas en charge les expressions régulières.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Les spécificateurs de caractères génériques suivants sont autorisés dans searchPattern.The following wildcard specifiers are permitted in searchPattern.

Spécificateur de caractère génériqueWildcard specifier CorrespondancesMatches
* (astérisque)* (asterisk) Zéro, un ou plusieurs caractères dans cette position.Zero or more characters in that position.
?? (point d’interrogation)(question mark) Zéro ou un caractère dans cette position.Zero or one character in that position.

Les caractères autres que le caractère générique sont des caractères littéraux.Characters other than the wildcard are literal characters. Par exemple, la searchPattern chaîne «*t » recherche tous les noms dans path se terminant par la lettre « t ».For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". La searchPattern chaîne « s*» recherche tous les noms dans path en commençant par la lettre « s ».The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Notes

Lorsque vous utilisez le caractère générique astérisque dans une searchPattern telle que «*. txt », le nombre de caractères dans l’extension spécifiée affecte la recherche comme suit :When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Si l’extension spécifiée fait exactement trois caractères, la méthode retourne des fichiers avec des extensions qui commencent par l’extension spécifiée.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Par exemple, «*. xls » retourne « Book. xls » et « Book. xlsx ».For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Dans tous les autres cas, la méthode retourne des fichiers qui correspondent exactement à l’extension spécifiée.In all other cases, the method returns files that exactly match the specified extension. Par exemple, «*. ai » retourne « file.ai », mais pas « file. AIF ».For example, "*.ai" returns "file.ai" but not "file.aif".

Lorsque vous utilisez le caractère générique point d’interrogation, cette méthode retourne uniquement les fichiers qui correspondent à l’extension de fichier spécifiée.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Par exemple, à partir de deux fichiers, « fichier1. txt » et « fichier1. txtother », dans un répertoire, un modèle de recherche «fichier ?. txt "retourne uniquement le premier fichier, tandis qu’un modèle de recherche de" fichier*. txt "retourne les deux fichiers.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

searchPattern ne peut pas se terminer par deux points (".."), ni contenir deux points ("..") suivis de DirectorySeparatorChar ou AltDirectorySeparatorChar, ni contenir de caractères non valides.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars.You can query for invalid characters by using the GetInvalidPathChars method.

Vous pouvez spécifier des informations relatives au chemin d’accès relatif avec le paramètre path.You can specify relative path information with the path parameter. Les informations relatives au chemin d’accès relatif sont interprétées par rapport au répertoire de travail actuel, que vous pouvez déterminer à l’aide de la méthode GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

Les méthodes EnumerateFiles et GetFiles diffèrent comme suit : quand vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant de retourner la collection entière. Lorsque vous utilisez GetFiles, vous devez attendre que l’intégralité du tableau de noms soit retournée avant de pouvoir accéder au tableau.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Par conséquent, lorsque vous travaillez avec de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

La collection retournée n’est pas mise en cache ; chaque appel à la GetEnumerator sur la collection démarre une nouvelle énumération.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateFiles(String)

Retourne une collection énumérable de noms de fichiers complets dans un chemin spécifié.Returns an enumerable collection of full file names in a specified path.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path);
static member EnumerateFiles : string -> seq<string>
Public Shared Function EnumerateFiles (path As String) As IEnumerable(Of String)

Paramètres

path
String

Le chemin d’accès relatif ou absolu du répertoire où effectuer la recherche.The relative or absolute path to the directory to search. Cette chaîne n'est pas sensible à la casse.This string is not case-sensitive.

Retours

Collection énumérable des noms d’affichage (chemins d’accès compris) pour les fichiers du répertoire spécifié par path.An enumerable collection of the full names (including paths) for the files in the directory specified by path.

Exceptions

path est une chaîne de longueur nulle, contient seulement un espace ou contient des caractères non valides.path is a zero-length string, contains only white space, or contains invalid characters. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

path a la valeur null.path is null.

path n’est pas valide, notamment s’il fait référence à un lecteur non mappé.path is invalid, such as referring to an unmapped drive.

path est un nom de fichier.path is a file name.

Le chemin d’accès et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.The specified path, file name, or combined exceed the system-defined maximum length.

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

Exemples

L’exemple suivant montre comment récupérer tous les fichiers dans un répertoire et les déplacer vers un nouveau répertoire.The following example shows how to retrieve all the files in a directory and move them to a new directory. Une fois les fichiers déplacés, ils n’existent plus dans le répertoire d’origine.After the files are moved, they no longer exist in the original directory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory);

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory)

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

L’exemple suivant énumère les fichiers dans le répertoire spécifié, lit chaque ligne du fichier et affiche la ligne si elle contient la chaîne « Europe ».The following example enumerates the files in the specified directory, reads each line of the file, and displays the line if it contains the string "Europe".

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // LINQ query for all files containing the word 'Europe'.
            var files = from file in 
                Directory.EnumerateFiles(@"\\archives1\library\")
                where file.ToLower().Contains("europe")
                select file;

            foreach (var file in files)
            {
                Console.WriteLine("{0}", file);
            }
            Console.WriteLine("{0} files found.", files.Count<string>().ToString());
        }
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            ' LINQ query for all files containing the word 'Europe'.
            Dim files = From file In Directory.EnumerateFiles("\\archives1\library\")
                Where file.ToLower().Contains("europe")

            For Each file In files
                Console.WriteLine("{0}", file)
            Next
            Console.WriteLine("{0} files found.", files.Count.ToString())
        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub

End Module

Remarques

Vous pouvez spécifier des informations relatives au chemin d’accès relatif avec le paramètre path.You can specify relative path information with the path parameter. Les informations relatives au chemin d’accès relatif sont interprétées par rapport au répertoire de travail actuel, que vous pouvez déterminer à l’aide de la méthode GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

Les méthodes EnumerateFiles et GetFiles diffèrent comme suit : quand vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant de retourner la collection entière. Lorsque vous utilisez GetFiles, vous devez attendre que l’intégralité du tableau de noms soit retournée avant de pouvoir accéder au tableau.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Par conséquent, lorsque vous travaillez avec de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

La collection retournée n’est pas mise en cache ; chaque appel à la GetEnumerator sur la collection démarre une nouvelle énumération.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateFiles(String, String)

Retourne une collection énumérable des noms de fichiers complets qui correspondent à un modèle de recherche dans un chemin spécifié.Returns an enumerable collection of full file names that match a search pattern in a specified path.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern);
static member EnumerateFiles : string * string -> seq<string>
Public Shared Function EnumerateFiles (path As String, searchPattern As String) As IEnumerable(Of String)

Paramètres

path
String

Le chemin d’accès relatif ou absolu du répertoire où effectuer la recherche.The relative or absolute path to the directory to search. Cette chaîne n'est pas sensible à la casse.This string is not case-sensitive.

searchPattern
String

Chaîne recherchée à trouver parmi les noms de fichiers dans path.The search string to match against the names of files in 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.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

Retours

Collection énumérable des noms complets (chemins d’accès compris) pour les fichiers du répertoire spécifié par path et qui correspondent au modèle de recherche spécifié.An enumerable collection of the full names (including paths) for the files in the directory specified by path and that match the specified search pattern.

Exceptions

path est une chaîne de longueur nulle, contient seulement un espace ou contient des caractères non valides.path is a zero-length string, contains only white space, or contains invalid characters. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

- ou --or- searchPattern ne contient pas un modèle valide.searchPattern does not contain a valid pattern.

path a la valeur null.path is null.

- ou --or- searchPattern a la valeur null.searchPattern is null.

path n’est pas valide, notamment s’il fait référence à un lecteur non mappé.path is invalid, such as referring to an unmapped drive.

path est un nom de fichier.path is a file name.

Le chemin d’accès et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.The specified path, file name, or combined exceed the system-defined maximum length.

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

Exemples

L’exemple suivant montre comment récupérer tous les fichiers texte d’un répertoire et les déplacer vers un nouveau répertoire.The following example shows how to retrieve all the text files in a directory and move them to a new directory. Une fois les fichiers déplacés, ils n’existent plus dans le répertoire d’origine.After the files are moved, they no longer exist in the original directory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

L’exemple suivant énumère les fichiers dans le répertoire spécifié qui ont une extension. txt, lit chaque ligne du fichier et affiche la ligne si elle contient la chaîne « Europe ».The following example enumerates the files in the specified directory that have a .txt extension, reads each line of the file, and displays the line if it contains the string "Europe".

using System;
using System.Linq;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // LINQ query for all .txt files containing the word 'Europe'.
            var files = from file in Directory.EnumerateFiles(@"\\archives1\library\", "*.txt")
                where file.ToLower().Contains("europe")
                select file;

            foreach (var file in files)
            {
                Console.WriteLine("{0}", file);
            }
            Console.WriteLine("{0} files found.", files.Count<string>().ToString());
        }
            
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            ' LINQ query for all .txt files containing the word 'Europe'.
            Dim files = From file In Directory.EnumerateFiles("\\archives1\library\", "*.txt")
                Where file.ToLower().Contains("europe")

            For Each file In files
                Console.WriteLine("{0}", file)
            Next
            Console.WriteLine("{0} files found.", files.Count.ToString())
        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub

End Module

Remarques

searchPattern peut être une combinaison de caractères littéraux et de caractères génériques, mais elle ne prend pas en charge les expressions régulières.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Les spécificateurs de caractères génériques suivants sont autorisés dans searchPattern.The following wildcard specifiers are permitted in searchPattern.

Spécificateur de caractère génériqueWildcard specifier CorrespondancesMatches
* (astérisque)* (asterisk) Zéro, un ou plusieurs caractères dans cette position.Zero or more characters in that position.
?? (point d’interrogation)(question mark) Zéro ou un caractère dans cette position.Zero or one character in that position.

Les caractères autres que le caractère générique sont des caractères littéraux.Characters other than the wildcard are literal characters. Par exemple, la searchPattern chaîne «*t » recherche tous les noms dans path se terminant par la lettre « t ».For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". La searchPattern chaîne « s*» recherche tous les noms dans path en commençant par la lettre « s ».The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Notes

Lorsque vous utilisez le caractère générique astérisque dans une searchPattern telle que «*. txt », le nombre de caractères dans l’extension spécifiée affecte la recherche comme suit :When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Si l’extension spécifiée fait exactement trois caractères, la méthode retourne des fichiers avec des extensions qui commencent par l’extension spécifiée.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Par exemple, «*. xls » retourne « Book. xls » et « Book. xlsx ».For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Dans tous les autres cas, la méthode retourne des fichiers qui correspondent exactement à l’extension spécifiée.In all other cases, the method returns files that exactly match the specified extension. Par exemple, «*. ai » retourne « file.ai », mais pas « file. AIF ».For example, "*.ai" returns "file.ai" but not "file.aif".

Lorsque vous utilisez le caractère générique point d’interrogation, cette méthode retourne uniquement les fichiers qui correspondent à l’extension de fichier spécifiée.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Par exemple, à partir de deux fichiers, « fichier1. txt » et « fichier1. txtother », dans un répertoire, un modèle de recherche «fichier ?. txt "retourne uniquement le premier fichier, tandis qu’un modèle de recherche de" fichier*. txt "retourne les deux fichiers.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

searchPattern ne peut pas se terminer par deux points (".."), ni contenir deux points ("..") suivis de DirectorySeparatorChar ou AltDirectorySeparatorChar, ni contenir de caractères non valides.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars.You can query for invalid characters by using the GetInvalidPathChars method.

Vous pouvez spécifier des informations relatives au chemin d’accès relatif avec le paramètre path.You can specify relative path information with the path parameter. Les informations relatives au chemin d’accès relatif sont interprétées par rapport au répertoire de travail actuel, que vous pouvez déterminer à l’aide de la méthode GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

Les méthodes EnumerateFiles et GetFiles diffèrent comme suit : quand vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant de retourner la collection entière. Lorsque vous utilisez GetFiles, vous devez attendre que l’intégralité du tableau de noms soit retournée avant de pouvoir accéder au tableau.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Par conséquent, lorsque vous travaillez avec de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

La collection retournée n’est pas mise en cache ; chaque appel à la GetEnumerator sur la collection démarre une nouvelle énumération.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

S’applique à