Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Directory.EnumerateFiles méthode (String)

 

Date de publication : novembre 2016

Retourne une collection énumérable de noms de fichiers dans un chemin d'accès spécifié.

Espace de noms:   System.IO
Assembly:  mscorlib (dans mscorlib.dll)

public static IEnumerable<string> EnumerateFiles(
	string path
)

Paramètres

path
Type: System.String

Le chemin relatif ou absolu du répertoire dans lequel chercher. Cette chaîne n'est pas sensible à la casse.

Valeur de retour

Type: System.Collections.Generic.IEnumerable<String>

Collection énumérable des noms d’affichage (chemins d’accès compris) pour les fichiers du répertoire spécifié par path.

Exception Condition
ArgumentException

path est une chaîne de longueur nulle, contient seulement un espace ou contient des caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars.

ArgumentNullException

path a la valeur null.

DirectoryNotFoundException

path n’est pas valide, notamment s’il fait référence à un lecteur non mappé.

IOException

path est un nom de fichier.

PathTooLongException

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. Par exemple, sur les plateformes Windows, les chemins d’accès ne doivent pas dépasser 248 caractères et les noms de fichiers ne doivent pas dépasser 260 caractères.

SecurityException

L'appelant n'a pas l'autorisation requise.

UnauthorizedAccessException

L'appelant n'a pas l'autorisation requise.

You can specify relative path information with the path parameter. Relative path information is interpreted as relative to the current working directory, which you can determine by using the M:System.IO.Directory.GetCurrentDirectory method.

The Overload:System.IO.Directory.EnumerateFiles and Overload:System.IO.Directory.GetFiles methods differ as follows: When you use Overload:System.IO.Directory.EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use Overload:System.IO.Directory.GetFiles, you must wait for the whole array of names to be returned before you can access the array. Therefore, when you are working with many files and directories, Overload:System.IO.Directory.EnumerateFiles can be more efficient.

The returned collection is not cached; each call to the M:System.Collections.Generic.IEnumerable`1.GetEnumerator on the collection will start a new enumeration.

The following example shows how to retrieve all the files in a directory and move them to a new directory. 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);
            }
        }
    }
}

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);
        }
    }
}

Plateforme Windows universelle
Disponible depuis 10
.NET Framework
Disponible depuis 4.0
Silverlight
Disponible depuis 4.0
Retour au début
Afficher: