Partage via


Directory Classe

Définition

Expose des méthodes statiques pour créer, se déplacer dans et énumérer des répertoires et sous-répertoires. Cette classe ne peut pas être héritée.

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
Héritage
Directory
Attributs

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. Une fois les fichiers 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, "*.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);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{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 montre comment utiliser la EnumerateFiles méthode pour récupérer une collection de fichiers texte à partir d’un répertoire, puis utiliser cette collection dans une requête pour rechercher toutes les lignes qui contiennent « Exemple ».

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

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

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

            foreach (var f in files)
            {
                Console.WriteLine("{0} contains {1}", f.File, f.Line);
            }
            Console.WriteLine("{0} lines found.", files.Count().ToString());
        }
    }
}
open System.IO

let archiveDirectory = @"C:\archive"

let files = 
    query {
        for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
        for line in File.ReadLines retrivedFile do
        where (line.Contains "file") 
        select 
            {| File = retrivedFile 
               Line = line |}
    }

for f in files do
    printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO

Module Module1

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

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub

End Module

L’exemple suivant montre comment déplacer un répertoire et tous ses fichiers vers un nouveau répertoire. Le répertoire d’origine n’existe plus après son déplacement.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\source";
            string destinationDirectory = @"C:\destination";

            try
            {
                Directory.Move(sourceDirectory, destinationDirectory);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

Remarques

Utilisez la Directory classe pour les opérations classiques telles que la copie, le déplacement, le renommage, la création et la suppression de répertoires.

Les méthodes statiques de la Directory classe effectuent des vérifications de sécurité sur toutes les méthodes. Si vous souhaitez réutiliser un objet plusieurs fois, envisagez plutôt d’utiliser la méthode instance correspondante deDirectoryInfo, car la case activée de sécurité ne sera pas toujours nécessaire.

Si vous n’effectuez qu’une seule action liée à un répertoire, il peut être plus efficace d’utiliser une méthode statique Directory plutôt qu’une méthode instance correspondante DirectoryInfo . La plupart des Directory méthodes nécessitent le chemin d’accès au répertoire que vous manipulez.

Notes

Dans les membres qui acceptent un paramètre de chaîne path , ce chemin doit être correctement formé ou une exception est levée. Par exemple, si un chemin d’accès est complet mais commence par un espace (« c :\temp »), la chaîne de chemin n’est pas rognée, de sorte que le chemin est considéré comme mal formé et une exception est levée. En outre, un chemin d’accès ou une combinaison de chemins d’accès ne peut pas être entièrement qualifié deux fois. Par exemple, « c :\temp c :\windows » déclenche également une exception. Assurez-vous que vos chemins d’accès sont bien formés lorsque vous utilisez des méthodes qui acceptent une chaîne de chemin d’accès. Pour plus d'informations, consultez Path.

Dans les membres qui acceptent un chemin d’accès, le chemin d’accès peut faire référence à un fichier ou à un répertoire. Vous pouvez utiliser un chemin d’accès complet, un chemin relatif ou un chemin d’accès UNC (Universal Naming Convention) pour un nom de serveur et de partage. Par exemple, tous les chemins d’accès suivants sont acceptables :

  • « c :\\MyDir » en C#, ou « c :\MyDir » en Visual Basic.

  • « MyDir\\MySubdir » en C#, ou « MyDir\MySubDir » en Visual Basic.

  • « \\\\MyServer\\MyShare » en C#, ou « \\MyServer\MyShare » en Visual Basic.

Par défaut, l’accès complet en lecture/écriture aux nouveaux répertoires est accordé à tous les utilisateurs. Toutefois, l’application doit disposer de la sécurité appropriée pour accéder aux répertoires existants.

Pour demander des autorisations pour un répertoire et tous ses sous-répertoires, terminez la chaîne de chemin d’accès par le caractère séparateur de répertoire. (Par exemple, « C :\Temp\ » accorde l’accès à C :\Temp\ et à tous ses sous-répertoires.) Pour exiger des autorisations uniquement pour un répertoire spécifique, terminez la chaîne de chemin d’accès par un point. (Par exemple, « C :\Temp\. » accorde uniquement l’accès à C :\Temp\, et non à ses sous-répertoires.)

Dans les membres qui acceptent un searchPattern paramètre, la chaîne de recherche peut être n’importe quelle combinaison de caractères littéraux et de deux caractères génériques ; * et ?. Ce paramètre ne reconnaît pas les expressions régulières. Pour plus d’informations, consultez la EnumerateDirectories(String, String) méthode ou toute autre méthode qui utilise le searchPattern paramètre.

Pour obtenir la liste des tâches d’E/S courantes, consultez Tâches courantes d’E/S.

Directory et DirectoryInfo ne sont pas pris en charge pour une utilisation dans les applications du Windows Store. Pour plus d’informations sur l’accès aux fichiers et dossiers dans les applications du Windows Store, consultez Accès aux données et aux fichiers (applications du Windows Store).

Méthodes

CreateDirectory(String)

Crée tous les répertoires et sous-répertoires dans le chemin d'accès spécifié, sauf s'ils existent déjà.

CreateDirectory(String, DirectorySecurity)

Crée tous les répertoires dans le chemin d'accès spécifié, sauf s'ils existent déjà, en appliquant la sécurité Windows spécifiée.

CreateDirectory(String, UnixFileMode)

Crée tous les répertoires et sous-répertoires dans le chemin d’accès spécifié avec les autorisations spécifiées, sauf s’ils existent déjà.

CreateSymbolicLink(String, String)

Crée un lien symbolique de répertoire identifié par path qui pointe vers pathToTarget.

CreateTempSubdirectory(String)

Crée un répertoire vide de nom unique dans le répertoire temporaire de l’utilisateur actuel.

Delete(String)

Supprime un répertoire vide dans un chemin d’accès spécifié.

Delete(String, Boolean)

Supprime le répertoire spécifié et, si c’est indiqué, tous les sous-répertoires et fichiers qu’il contient.

EnumerateDirectories(String)

Retourne une collection énumérable de noms complets de répertoires dans un chemin spécifié.

EnumerateDirectories(String, String)

Retourne une collection énumérable des noms complets de répertoires qui correspondent à un modèle de recherche dans un chemin spécifié.

EnumerateDirectories(String, String, EnumerationOptions)

Retourne une collection énumérable des noms complets de répertoires qui correspondent à un modèle de recherche dans un chemin spécifié, et recherche éventuellement dans les sous-répertoires.

EnumerateDirectories(String, String, SearchOption)

Retourne une collection énumérable des noms complets de répertoires qui correspondent à un modèle de recherche dans un chemin d’accès spécifié, et effectue éventuellement la recherche dans les sous-répertoires.

EnumerateFiles(String)

Retourne une collection énumérable de noms de fichiers complets dans un chemin spécifié.

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

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.

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.

EnumerateFileSystemEntries(String)

Retourne une collection énumérable de noms de fichiers et de noms de répertoires dans un chemin d’accès spécifié.

EnumerateFileSystemEntries(String, String)

Retourne une collection énumérable des noms de fichiers et des noms de répertoires qui correspondent à un modèle de recherche dans un chemin spécifié.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Retourne une collection énumérable des noms de fichiers et des noms de répertoires qui correspondent à un modèle de recherche et à des options d’énumération dans un chemin spécifié.

EnumerateFileSystemEntries(String, String, SearchOption)

Retourne une collection énumérable des noms de fichiers et des noms de répertoires qui correspondent à un modèle de recherche dans un chemin d'accès spécifié, et effectue éventuellement des recherches dans les sous-répertoires.

Exists(String)

Détermine si le chemin d'accès donné référence un répertoire existant sur disque.

GetAccessControl(String)

Obtient un objet DirectorySecurity qui encapsule les entrées de liste de contrôle d’accès (ACL) pour un répertoire spécifié.

GetAccessControl(String, AccessControlSections)

Obtient un objet DirectorySecurity qui encapsule le type spécifié d’entrées de liste de contrôle d’accès pour un répertoire spécifié.

GetCreationTime(String)

Obtient la date et l'heure de création d'un répertoire.

GetCreationTimeUtc(String)

Obtient la date/heure de création d'un répertoire, au format UTC (Temps universel coordonné).

GetCurrentDirectory()

Obtient le répertoire de travail en cours de l'application.

GetDirectories(String)

Retourne les noms des sous-répertoires (y compris leurs chemins d’accès) dans le répertoire spécifié.

GetDirectories(String, String)

Retourne les noms des sous-répertoires (y compris leurs chemins d’accès) qui correspondent au modèle de recherche spécifié dans le répertoire spécifié.

GetDirectories(String, String, EnumerationOptions)

Retourne les noms des sous-répertoires (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é.

GetDirectories(String, String, SearchOption)

Retourne les noms des sous-répertoires (avec leurs chemins d’accès) qui correspondent au modèle de recherche spécifié dans le répertoire spécifié, et effectue éventuellement une recherche dans les sous-répertoires.

GetDirectoryRoot(String)

Retourne les informations sur le volume, les informations sur la racine ou les deux, pour le chemin d’accès spécifié.

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.

GetFileSystemEntries(String)

Retourne les noms de tous les fichiers et sous-répertoires dans un chemin d’accès spécifié.

GetFileSystemEntries(String, String)

Retourne un tableau de noms de fichiers et noms de répertoires qui correspondent à un modèle de recherche dans un chemin spécifié.

GetFileSystemEntries(String, String, EnumerationOptions)

Retourne un tableau des noms de fichiers et des noms de répertoires qui correspondent à un modèle de recherche et à des options d’énumération dans un chemin spécifié.

GetFileSystemEntries(String, String, SearchOption)

Retourne un tableau de tous les noms de fichiers et noms de répertoires qui correspondent à un modèle de recherche dans un chemin d’accès spécifié, et effectue éventuellement des recherches dans les sous-répertoires.

GetLastAccessTime(String)

Retourne la date/heure du dernier accès au fichier ou au répertoire spécifié.

GetLastAccessTimeUtc(String)

Retourne la date/heure, au format UTC (Temps universel coordonné), du dernier accès au fichier ou au répertoire spécifié.

GetLastWriteTime(String)

Retourne la date/heure du dernier accès en écriture au fichier ou au répertoire spécifié.

GetLastWriteTimeUtc(String)

Retourne la date/heure, au format UTC (Temps universel coordonné), de la dernière écriture dans le fichier ou le répertoire spécifié.

GetLogicalDrives()

Récupère les noms des lecteurs logiques sur cet ordinateur sous la forme «< lettre> de lecteur :\ ».

GetParent(String)

Récupère le répertoire parent du chemin d'accès spécifié, y compris les chemins d'accès absolus et relatifs.

Move(String, String)

Déplace un fichier, ou un répertoire et son contenu, vers un nouvel emplacement.

ResolveLinkTarget(String, Boolean)

Obtient la cible du lien de répertoire spécifié.

SetAccessControl(String, DirectorySecurity)

Applique les entrées de liste de contrôle d’accès (ACL) décrites par un objet DirectorySecurity au répertoire spécifié.

SetCreationTime(String, DateTime)

Définit la date/heure de création pour le fichier ou le répertoire spécifié.

SetCreationTimeUtc(String, DateTime)

Définit la date et l'heure de création, au format de temps universel (UTC, Universal Coordinated Time) pour le fichier ou le répertoire spécifié.

SetCurrentDirectory(String)

Définit le répertoire spécifié comme répertoire de travail actuel de l'application.

SetLastAccessTime(String, DateTime)

Définit la date/heure du dernier accès au fichier ou au répertoire spécifié.

SetLastAccessTimeUtc(String, DateTime)

Définit la date/heure, au format UTC (Temps universel coordonné), du dernier accès au fichier ou au répertoire spécifié.

SetLastWriteTime(String, DateTime)

Définit la date/heure du dernier accès en écriture au répertoire.

SetLastWriteTimeUtc(String, DateTime)

Définit la date/heure, au format UTC (Temps universel coordonnée), de la dernière écriture dans un répertoire.

S’applique à

Voir aussi