DirectoryInfo Classe

Définition

Expose les méthodes d’instance pour la création, le déplacement et l’énumération via des répertoires et des sous-répertoires. Cette classe ne peut pas être héritée.

public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DirectoryInfo = class
    inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
Héritage
DirectoryInfo
Héritage
Attributs

Exemples

L’exemple suivant illustre certains des principaux membres de la DirectoryInfo classe.

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
        try
        {
            // Determine whether the directory exists.
            if (di.Exists)
            {
                // Indicate that the directory already exists.
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            di.Create();
            Console.WriteLine("The directory was created successfully.");

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {}
    }
}
open System.IO

// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"
try
    // Determine whether the directory exists.
    if di.Exists then
        // Indicate that the directory already exists.
        printfn "That path exists already."
    else
        // Try to create the directory.
        di.Create()
        printfn "The directory was created successfully."

        // Delete the directory.
        di.Delete()
        printfn "The directory was deleted successfully."
with e ->
    printfn $"The process failed: {e}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            di.Create()
            Console.WriteLine("The directory was created successfully.")

            ' Delete the directory.
            di.Delete()
            Console.WriteLine("The directory was deleted successfully.")

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

L’exemple suivant montre comment copier un répertoire et son contenu.

using System;
using System.IO;

class CopyDir
{
    public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
    {
        if (source.FullName.ToLower() == target.FullName.ToLower())
        {
            return;
        }

        // Check if the target directory exists, if not, create it.
        if (!Directory.Exists(target.FullName))
        {
            Directory.CreateDirectory(target.FullName);
        }

        // Copy each file into it's new directory.
        foreach (FileInfo fi in source.GetFiles())
        {
            Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
        }

        // Copy each subdirectory using recursion.
        foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
        {
            DirectoryInfo nextTargetSubDir =
                target.CreateSubdirectory(diSourceSubDir.Name);
            CopyAll(diSourceSubDir, nextTargetSubDir);
        }
    }

    public static void Main()
    {
        string sourceDirectory = @"c:\sourceDirectory";
        string targetDirectory = @"c:\targetDirectory";

        DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
        DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);

        CopyAll(diSource, diTarget);
    }

    // Output will vary based on the contents of the source directory.
}
open System.IO

let rec copyAll (source: DirectoryInfo) (target: DirectoryInfo) =
    if source.FullName.ToLower() <> target.FullName.ToLower() then
        // Check if the target directory exists, if not, create it.
        if not (Directory.Exists target.FullName) then
            Directory.CreateDirectory target.FullName |> ignore

        // Copy each file into it's new directory.
        for fi in source.GetFiles() do
            printfn $@"Copying {target.FullName}\{fi.Name}"
            fi.CopyTo(Path.Combine(string target, fi.Name), true) |> ignore

        // Copy each subdirectory using recursion.
        for diSourceSubDir in source.GetDirectories() do
            target.CreateSubdirectory diSourceSubDir.Name
            |> copyAll diSourceSubDir

let sourceDirectory = @"c:\sourceDirectory"
let targetDirectory = @"c:\targetDirectory"

let diSource = DirectoryInfo sourceDirectory
let diTarget = DirectoryInfo targetDirectory

copyAll diSource diTarget

// Output will vary based on the contents of the source directory.
Imports System.IO

Class CopyDir
    Shared Sub CopyAll(ByVal source As DirectoryInfo, ByVal target As DirectoryInfo)
        If (source.FullName.ToLower() = target.FullName.ToLower()) Then
            Return
        End If

        ' Check if the target directory exists, if not, create it.
        If Directory.Exists(target.FullName) = False Then
            Directory.CreateDirectory(target.FullName)
        End If

        ' Copy each file into it's new directory.
        For Each fi As FileInfo In source.GetFiles()
            Console.WriteLine("Copying {0}\{1}", target.FullName, fi.Name)
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), True)
        Next

        ' Copy each subdirectory using recursion.
        For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
            Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
            CopyAll(diSourceSubDir, nextTargetSubDir)
        Next
    End Sub

    Shared Sub Main()
        Dim sourceDirectory As String = "c:\\sourceDirectory"
        Dim targetDirectory As String = "c:\\targetDirectory"

        Dim diSource As DirectoryInfo = New DirectoryInfo(sourceDirectory)
        Dim diTarget As DirectoryInfo = New DirectoryInfo(targetDirectory)

        CopyAll(diSource, diTarget)
    End Sub
    ' Output will vary based on the contents of the source directory.
End Class

Remarques

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

Si vous envisagez de réutiliser un objet plusieurs fois, envisagez d’utiliser la méthode d’instance de DirectoryInfo la classe plutôt que les méthodes statiques correspondantes de la Directory classe, car une vérification de sécurité n’est pas toujours nécessaire.

Note

Dans les membres qui acceptent un chemin d’accès en tant que chaîne d’entrée, ce chemin doit être bien formé ou une exception est levée. Par exemple, si un chemin d’accès est complet, mais commence par un espace, le chemin n’est pas rogné dans les méthodes de la classe. Par conséquent, le chemin d’accès est incorrect et une exception est levée. De même, un chemin d’accès ou une combinaison de chemins ne peut pas être qualifié deux fois. Par exemple, « c :\temp c :\windows » déclenche également une exception dans la plupart des cas. Vérifiez que vos chemins sont bien formés lors de l’utilisation de méthodes qui acceptent une chaîne de chemin d’accès.

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

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

  • « 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 en lecture/écriture complet aux nouveaux répertoires est accordé à tous les utilisateurs.

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

Constructeurs

Nom Description
DirectoryInfo(String)

Initialise une nouvelle instance de la DirectoryInfo classe sur le chemin d’accès spécifié.

Champs

Nom Description
FullPath

Représente le chemin complet du répertoire ou du fichier.

(Hérité de FileSystemInfo)
OriginalPath

Chemin d’accès initialement spécifié par l’utilisateur, qu’il soit relatif ou absolu.

(Hérité de FileSystemInfo)

Propriétés

Nom Description
Attributes

Obtient ou définit les attributs du fichier ou du répertoire actif.

(Hérité de FileSystemInfo)
CreationTime

Obtient ou définit l’heure de création du fichier ou du répertoire actif.

(Hérité de FileSystemInfo)
CreationTimeUtc

Obtient ou définit l’heure de création, en temps universel coordonné (UTC), du fichier ou du répertoire actif.

(Hérité de FileSystemInfo)
Exists

Obtient une valeur indiquant si le répertoire existe.

Extension

Obtient la partie d’extension du nom de fichier, y compris le point . de début, même s’il s’agit du nom de fichier entier ou d’une chaîne vide si aucune extension n’est présente.

(Hérité de FileSystemInfo)
FullName

Obtient le chemin d’accès complet du répertoire.

FullName

Obtient le chemin complet du répertoire ou du fichier.

(Hérité de FileSystemInfo)
LastAccessTime

Obtient ou définit l’heure à laquelle le fichier ou le répertoire actif a été consulté pour la dernière fois.

(Hérité de FileSystemInfo)
LastAccessTimeUtc

Obtient ou définit l’heure, en temps universel coordonné (UTC), que le fichier ou répertoire actif a été consulté pour la dernière fois.

(Hérité de FileSystemInfo)
LastWriteTime

Obtient ou définit l’heure à laquelle le fichier ou le répertoire actif a été écrit pour la dernière fois.

(Hérité de FileSystemInfo)
LastWriteTimeUtc

Obtient ou définit l’heure, en temps universel coordonné (UTC), lorsque le fichier ou le répertoire actif a été écrit pour la dernière fois.

(Hérité de FileSystemInfo)
Name

Obtient le nom de cette DirectoryInfo instance.

Parent

Obtient le répertoire parent d’un sous-répertoire spécifié.

Root

Obtient la partie racine du répertoire.

Méthodes

Nom Description
Create()

Crée un répertoire.

Create(DirectorySecurity)

Crée un répertoire à l’aide d’un DirectorySecurity objet.

CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
CreateSubdirectory(String, DirectorySecurity)

Crée un sous-répertoire ou des sous-répertoires sur le chemin spécifié avec la sécurité spécifiée. Le chemin d’accès spécifié peut être relatif à cette instance de la DirectoryInfo classe.

CreateSubdirectory(String)

Crée un sous-répertoire ou des sous-répertoires sur le chemin d’accès spécifié. Le chemin d’accès spécifié peut être relatif à cette instance de la DirectoryInfo classe.

Delete()

Supprime cela DirectoryInfo s’il est vide.

Delete(Boolean)

Supprime cette instance d’un DirectoryInfo, en spécifiant s’il faut supprimer des sous-répertoires et des fichiers.

EnumerateDirectories()

Retourne une collection énumérable d’informations d’annuaire dans le répertoire actif.

EnumerateDirectories(String, EnumerationOptions)

Retourne une collection énumérable d’informations d’annuaire qui correspond au modèle de recherche et aux options d’énumération spécifiés.

EnumerateDirectories(String, SearchOption)

Retourne une collection énumérable d’informations d’annuaire qui correspond à un modèle de recherche et une option de sous-répertoire de recherche spécifiées.

EnumerateDirectories(String)

Retourne une collection énumérable d’informations d’annuaire qui correspond à un modèle de recherche spécifié.

EnumerateFiles()

Retourne une collection énumérable d’informations de fichier dans le répertoire actif.

EnumerateFiles(String, EnumerationOptions)

Retourne une collection énumérable d’informations de fichier qui correspond au modèle de recherche et aux options d’énumération spécifiés.

EnumerateFiles(String, SearchOption)

Retourne une collection énumérable d’informations de fichier qui correspond à un modèle de recherche et une option de sous-répertoire de recherche spécifiés.

EnumerateFiles(String)

Retourne une collection énumérable d’informations de fichier qui correspond à un modèle de recherche.

EnumerateFileSystemInfos()

Retourne une collection énumérable d’informations sur le système de fichiers dans le répertoire actif.

EnumerateFileSystemInfos(String, EnumerationOptions)

Retourne une collection énumérable d’informations de système de fichiers qui correspond au modèle de recherche et aux options d’énumération spécifiés.

EnumerateFileSystemInfos(String, SearchOption)

Retourne une collection énumérable d’informations sur le système de fichiers qui correspond à un modèle de recherche et une option de sous-répertoire de recherche spécifiés.

EnumerateFileSystemInfos(String)

Retourne une collection énumérable d’informations de système de fichiers qui correspond à un modèle de recherche spécifié.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetAccessControl()

Obtient un DirectorySecurity objet qui encapsule les entrées de liste de contrôle d’accès (ACL) pour le répertoire décrit par l’objet actif DirectoryInfo .

GetAccessControl(AccessControlSections)

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

GetDirectories()

Retourne les sous-répertoires du répertoire actif.

GetDirectories(String, EnumerationOptions)

Retourne un tableau de répertoires dans la correspondance actuelle DirectoryInfo des options de recherche et d’énumération spécifiées.

GetDirectories(String, SearchOption)

Retourne un tableau de répertoires dans la correspondance actuelle DirectoryInfo des critères de recherche donnés et à l’aide d’une valeur pour déterminer s’il faut rechercher des sous-répertoires.

GetDirectories(String)

Retourne un tableau de répertoires dans la correspondance actuelle DirectoryInfo des critères de recherche donnés.

GetFiles()

Retourne une liste de fichiers à partir du répertoire actif.

GetFiles(String, EnumerationOptions)

Retourne une liste de fichiers du répertoire actif correspondant aux options de recherche et d’énumération spécifiées.

GetFiles(String, SearchOption)

Retourne une liste de fichiers du répertoire actif correspondant au modèle de recherche donné et en utilisant une valeur pour déterminer s’il faut rechercher des sous-répertoires.

GetFiles(String)

Retourne une liste de fichiers du répertoire actif correspondant au modèle de recherche donné.

GetFileSystemInfos()

Retourne un tableau d’entrées fortement typées FileSystemInfo représentant tous les fichiers et sous-répertoires d’un répertoire.

GetFileSystemInfos(String, EnumerationOptions)

Récupère un tableau d’objets fortement typés FileSystemInfo représentant les fichiers et sous-répertoires qui correspondent aux options de recherche et d’énumération spécifiées.

GetFileSystemInfos(String, SearchOption)

Récupère un tableau d’objets FileSystemInfo qui représentent les fichiers et les sous-répertoires correspondant aux critères de recherche spécifiés.

GetFileSystemInfos(String)

Récupère un tableau d’objets fortement typés FileSystemInfo représentant les fichiers et les sous-répertoires qui correspondent aux critères de recherche spécifiés.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()

Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Définit l’objet SerializationInfo avec le nom de fichier et des informations d’exception supplémentaires.

(Hérité de FileSystemInfo)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeLifetimeService()

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l’objet actuel MarshalByRefObject .

(Hérité de MarshalByRefObject)
MoveTo(String)

Déplace une DirectoryInfo instance et son contenu vers un nouveau chemin d’accès.

Refresh()

Actualise l’état de l’objet.

(Hérité de FileSystemInfo)
SetAccessControl(DirectorySecurity)

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

ToString()

Retourne le chemin d’accès d’origine passé au DirectoryInfo constructeur. Utilisez les propriétés ou Name le FullName chemin d’accès complet ou le nom de fichier/répertoire au lieu de cette méthode.

S’applique à

Voir aussi