Partage via


DirectoryInfo Classe

Définition

Expose des méthodes d'instance pour créer, déplacer et énumérer des répertoires et 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 main membres de la DirectoryInfo classe.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di = gcnew 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 0;
      }
      
      // 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 );
   }

}
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) == false)
        {
            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 DirectoryInfo classe pour les opérations classiques telles que la copie, le déplacement, le renommage, la création et la suppression de répertoires.

Si vous souhaitez réutiliser un objet plusieurs fois, envisagez d’utiliser la méthode instance de DirectoryInfo au lieu des méthodes statiques correspondantes de la Directory classe, car une case activée de sécurité ne sera pas toujours nécessaire.

Notes

Dans les membres qui acceptent un chemin d’accès en tant que chaîne d’entrée, 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, le chemin n’est pas rogné dans les méthodes de la classe. Par conséquent, le chemin d’accès est mal formé et une exception est levée. De même, un chemin d’accès ou une combinaison de chemins d’accès ne peut pas être qualifié deux fois. Par exemple, « c :\temp c :\windows » génère également une exception dans la plupart des cas. 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.

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 nom de serveur et de partage. Par exemple, tous les chemins d’accès 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 complet en lecture/écriture aux nouveaux répertoires est accordé à tous les utilisateurs.

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

Constructeurs

DirectoryInfo(String)

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

Champs

FullPath

Représente le chemin d'accès qualifié complet du répertoire ou fichier.

(Hérité de FileSystemInfo)
OriginalPath

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

(Hérité de FileSystemInfo)

Propriétés

Attributes

Obtient ou définit les attributs pour le fichier ou le 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, au format de temps universel (UTC, Coordinated Universal Time), 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 extension du nom de fichier, y compris le point . de début même s’il s’agit du nom de fichier entier, ou 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 d'accès complet du répertoire ou fichier.

(Hérité de FileSystemInfo)
LastAccessTime

Obtient ou définit l'heure du dernier accès au fichier ou répertoire actif.

(Hérité de FileSystemInfo)
LastAccessTimeUtc

Obtient ou définit l'heure, au format de temps universel (UTC, Universal Coordinated Time), du dernier accès au fichier ou au répertoire actif.

(Hérité de FileSystemInfo)
LastWriteTime

Obtient ou définit l'heure de la dernière écriture dans le fichier ou répertoire actif.

(Hérité de FileSystemInfo)
LastWriteTimeUtc

Obtient ou définit l'heure, au format de temps universel (UTC, Universal Coordinated Time), de la dernière écriture dans le fichier ou le répertoire actif.

(Hérité de FileSystemInfo)
LinkTarget

Obtient le chemin d’accès cible du lien situé dans FullName, ou null si cette FileSystemInfo instance ne représente pas de lien.

(Hérité de FileSystemInfo)
Name

Obtient le nom de cette instance de DirectoryInfo.

Parent

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

Root

Obtient la partie racine du répertoire.

UnixFileMode

Obtient ou définit le mode de fichier Unix pour le fichier ou le répertoire actif.

(Hérité de FileSystemInfo)

Méthodes

Create()

Crée un répertoire.

Create(DirectorySecurity)

Crée un répertoire en utilisant un objet DirectorySecurity.

CreateAsSymbolicLink(String)

Crée un lien symbolique situé dans FullName qui pointe vers le spécifié pathToTarget.

(Hérité de FileSystemInfo)
CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

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

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

CreateSubdirectory(String, DirectorySecurity)

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

Delete()

Supprime cet élément DirectoryInfo s'il est vide.

Delete(Boolean)

Supprime cette instance d'un élément DirectoryInfo, en spécifiant si les sous-répertoires et les fichiers doivent être supprimés.

EnumerateDirectories()

Retourne une collection énumérable d'informations de répertoires dans le répertoire actif.

EnumerateDirectories(String)

Retourne une collection énumérable d'informations sur le répertoire qui correspond à un modèle de recherche spécifié.

EnumerateDirectories(String, EnumerationOptions)

Retourne une collection énumérable d'informations de répertoire qui correspond au modèle de recherche et aux options d’énumération que vous spécifiez.

EnumerateDirectories(String, SearchOption)

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

EnumerateFiles()

Retourne une collection énumérable d'informations de fichiers dans le répertoire actif.

EnumerateFiles(String)

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

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 que vous spécifiez.

EnumerateFiles(String, SearchOption)

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

EnumerateFileSystemInfos()

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

EnumerateFileSystemInfos(String)

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

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 que vous spécifiez.

EnumerateFileSystemInfos(String, SearchOption)

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

Equals(Object)

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

(Hérité de Object)
GetAccessControl()

Obtient un objet DirectorySecurity qui encapsule les entrées ACL pour le répertoire décrit par l'objet DirectoryInfo en cours.

GetAccessControl(AccessControlSections)

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

GetDirectories()

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

GetDirectories(String)

Retourne un tableau de répertoires dans le DirectoryInfo en cours satisfaisant aux critères de recherche spécifiés.

GetDirectories(String, EnumerationOptions)

Retourne un tableau de répertoires dans l’élément DirectoryInfo actuel correspondant au modèle de recherche et aux options d'énumération spécifiés.

GetDirectories(String, SearchOption)

Retourne un tableau de répertoires dans le DirectoryInfo en cours qui correspond à des critères de recherche donnés et qui utilise une valeur pour déterminer s'il faut effectuer une recherche dans les sous-répertoires.

GetFiles()

Retourne la liste des fichiers du répertoire actif.

GetFiles(String)

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

GetFiles(String, EnumerationOptions)

Retourne une liste de fichiers du répertoire actuel correspondant au modèle de recherche et aux options d'énumération spécifiés.

GetFiles(String, SearchOption)

Retourne une liste des fichiers du répertoire actif qui correspond au modèle de recherche donné et utilise une valeur pour déterminer s'il faut effectuer une recherche dans les sous-répertoires.

GetFileSystemInfos()

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

GetFileSystemInfos(String)

Récupère un tableau d'objets FileSystemInfo fortement typés qui représentent des fichiers et des sous-répertoires correspondant au critère de recherche spécifié.

GetFileSystemInfos(String, EnumerationOptions)

Récupère un tableau d'objets FileSystemInfo fortement typés qui représentent les fichiers et sous-répertoires correspondant au modèle de recherche et aux options d’énumération que vous spécifiez.

GetFileSystemInfos(String, SearchOption)

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

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

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

(Hérité de MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

Définit l'objet SerializationInfo à l'aide du nom de fichier et d'autres informations se rapportant à l'exception.

(Hérité de FileSystemInfo)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

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

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

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

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

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

Refresh()

Actualise l'état de l'objet.

(Hérité de FileSystemInfo)
ResolveLinkTarget(Boolean)

Obtient la cible du lien spécifié.

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

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

ToString()

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

ToString()

Retourne le chemin d’origine. Utilisez les propriétés FullName ou Name pour le chemin complet ou le nom de fichier/répertoire.

(Hérité de FileSystemInfo)

Méthodes d’extension

Create(DirectoryInfo, DirectorySecurity)

Crée un répertoire en veillant à ce qu’il soit créé avec la sécurité de répertoire spécifiée. Si le répertoire existe déjà, aucune action n’est entreprise.

GetAccessControl(DirectoryInfo)

Retourne les informations de sécurité d’un répertoire.

GetAccessControl(DirectoryInfo, AccessControlSections)

Retourne les informations de sécurité d’un répertoire.

SetAccessControl(DirectoryInfo, DirectorySecurity)

Change les attributs de sécurité d’un répertoire existant.

S’applique à

Voir aussi