My.Computer.FileSystem.CopyDirectory, méthode

Mise à jour : novembre 2007

Copie un répertoire dans un autre répertoire.

' Usage
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,overwrite)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,showUI)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,showUI ,onUserCancel)
' Declaration
Public Sub CopyDirectory( _
   ByVal sourceDirectoryName As String, _
   ByVal destinationDirectoryName As String _
)
' -or-
Public Sub CopyDirectory( _
   ByVal sourceDirectoryName As String, _
   ByVal destinationDirectoryName As String, _
   ByVal overwrite As Boolean _
)
' -or-
Public Sub CopyDirectory( _
   ByVal sourceDirectoryName As String, _
   ByVal destinationDirectoryName As String, _
   ByVal showUI As UIOption _
)
' -or-
Public Sub CopyDirectory( _
   ByVal sourceDirectoryName As String, _
   ByVal destinationDirectoryName As String, _
   ByVal showUI As UIOption, _
   ByVal onUserCancel As UICancelOption _
)

Paramètres

  • sourceDirectoryName
    String. Répertoire à copier. Obligatoire.

  • destinationDirectoryName
    String. Emplacement vers lequel le répertoire doit être copié. Obligatoire.

  • overwrite
    Boolean. Si des fichiers existants doivent être remplacés. La valeur par défaut est False. Obligatoire.

  • showUI
    UIOption. Si besoin d'un suivi visuel de l'avancement de l'opération. La valeur par défaut est UIOption.OnlyErrorDialogs. Obligatoire.

  • onUserCancel
    UICancelOption. Spécifie l'action à effectuer si l'utilisateur clique sur Annuler pendant l'opération. La valeur par défaut est ThrowException. Obligatoire.

Exceptions

Les conditions ci-dessous peuvent générer une exception :

  • Le nouveau nom spécifié pour le répertoire contient le signe deux-points (:) ou une barre oblique (\ ou /) (ArgumentException).

  • Le chemin d'accès n'est pas valide pour une des raisons suivantes : il s'agit d'une chaîne de longueur nulle ; il ne contient que des espaces blancs ; il contient des caractères non valides ou il s'agit d'un chemin d'accès de périphérique (qui commence par \\.\) (ArgumentException).

  • Le chemin d'accès n'est pas valide, car il a la valeur Nothing (ArgumentNullException).

  • destinationDirectoryName a la valeur Nothing ou est une chaîne vide (ArgumentNullException).

  • Le répertoire source n'existe pas (DirectoryNotFoundException).

  • Le répertoire source est un répertoire racine (IOException).

  • Le chemin d'accès combiné pointe vers un fichier existant (IOException).

  • Les chemins d'accès source et cible sont identiques (IOException).

  • ShowUI a la valeur UIOption.AllDialogs et l'utilisateur annule l'opération, ou un ou plusieurs fichiers dans le répertoire ne peuvent pas être copiés (OperationCanceledException).

  • L'opération est cyclique (InvalidOperationException).

  • Le chemin d'accès contient le signe deux-points (:) (NotSupportedException).

  • Le chemin d'accès dépasse la longueur maximale définie par le système (PathTooLongException).

  • Un nom de fichier ou de dossier du chemin d'accès contient un signe deux-points (:) ou n'a pas un format correct (NotSupportedException).

  • L'utilisateur n'a pas les autorisations nécessaires pour afficher le chemin d'accès (SecurityException).

  • Un fichier de destination existe, mais n'est pas accessible (UnauthorizedAccessException).

Notes

Cette méthode copie le contenu du répertoire, ainsi que le répertoire lui-même. Si le répertoire cible n'existe pas, il est créé. Si un répertoire portant le même nom existe à l'emplacement cible, le contenu des deux répertoires est fusionné. Vous pouvez spécifier un nouveau nom pour le répertoire pendant l'opération.

Lors de la copie de fichiers dans un répertoire, des exceptions provoquées par un fichier spécifique, comme un fichier existant au cours d'une fusion alors que overwrite a la valeur False, peuvent être levées. Lorsque de telles exceptions sont levées, elles sont consolidées en une seule exception dont la propriété Data comporte des entrées sous forme de IDictionary où le chemin d'accès au fichier ou au répertoire constitue la clé et le message d'exception spécifique est contenu dans la valeur correspondante. Utilisez For…Each pour énumérer les entrées.

Tâches

Le tableau suivant répertorie des exemples de tâches impliquant la méthode My.Computer.FileSystem.CopyDirectory.

Pour

Consultez

Copier un répertoire

Comment : copier un répertoire vers un autre répertoire dans Visual Basic

Exemple

L'exemple suivant copie le répertoire TestDirectory1 dans TestDirectory2, en remplaçant les fichiers existants.

My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)

Remplacez C:\TestDirectory1 et C:\TestDirectory2 par le chemin d'accès et le nom du répertoire que vous souhaitez copier et l'emplacement vers lequel vous souhaitez le copier.

Configuration requise

Espace de noms :Microsoft.VisualBasic.MyServices

Classe :FileSystemProxy (fournit l'accès à FileSystem)

Assembly : bibliothèque runtime Visual Basic (dans Microsoft.VisualBasic.dll)

Disponibilité par type de projet

Type de projet

Disponible

Application Windows

Oui

Bibliothèque de classes

Oui

Application console

Oui

Bibliothèque de contrôles Windows

Oui

Bibliothèque de contrôles Web

Oui

Service Windows

Oui

Site Web

Oui

Autorisations

Les autorisations suivantes peuvent être nécessaires :

Autorisation

Description

FileIOPermission

Contrôle la possibilité d'accéder à des fichiers et à des dossiers. Énumération associée : Unrestricted.

UIPermission

Contrôle les autorisations relatives aux interfaces utilisateur et au presse-papiers. Énumération associée : SafeSubWindows.

Pour plus d'informations, consultez Sécurité d'accès du code et Demande d'autorisations.

Voir aussi

Tâches

Comment : placer la collection de fichiers dans un répertoire dans Visual Basic

Comment : déplacer un répertoire dans Visual Basic

Comment : déplacer le contenu d'un répertoire dans Visual Basic

Comment : analyser des chemins d'accès dans Visual Basic

Comment : déterminer le chemin d'accès absolu d'un fichier dans Visual Basic

Comment : déterminer si un répertoire existe dans Visual Basic

Référence

My.Computer.FileSystem, objet

UICancelOption, énumération