Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Directory.EnumerateFiles, méthode (String)

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épertoiredans lequel chercher. Cette chaîne ne respecte pas la casse.

Valeur de retour

Type : System.Collections.Generic.IEnumerable<String>
Collection énumérable des noms complets (chemins compris) pour les fichiers du répertoire spécifiés par path.

ExceptionCondition
ArgumentException

path is a zero-length string, contains only white space, or contains invalid characters. You can query for invalid characters by using the GetInvalidPathChars method.

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

Vous pouvez spécifier les informations de chemin d'accès relatif avec le paramètre path. Les informations de chemin d'accès relatif sont relatives au répertoire de travail actuel, que vous pouvez déterminer à l'aide de la méthode GetCurrentDirectory.

Les méthodes EnumerateFiles et GetFiles diffèrent comme suit : lorsque vous utilisez EnumerateFiles, vous pouvez commencer à énumérer la collection de noms avant que la collection entière soit retournée ; 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. Par conséquent, lorsque vous utilisez de nombreux fichiers et répertoires, EnumerateFiles peut être plus efficace.

La collection retournée n'est pas mise en cache ; chaque appel de la méthode GetEnumerator sur la collection démarre une nouvelle énumération.

L'exemple suivant montre comment récupérer tous les fichiers texte dans un répertoire et les déplacer vers un nouveau répertoire. Une fois que les fichiers sont déplacés, ils n'existent plus dans le répertoire d'origine.


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


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


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


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Pris en charge dans : 4

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft