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

Mise à jour : novembre 2007

Utilisez la méthode My.Computer.FileSystem.CopyDirectory pour copier un répertoire dans un autre. 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 sera créé. Si un répertoire portant le même nom existe à l'emplacement cible et que overwrite a la valeur False, le contenu des deux répertoires sera 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 dans lesquelles 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.

Pour copier un répertoire dans un autre répertoire

  • Utilisez la méthode CopyDirectory en spécifiant les noms de répertoires source et de destination. L'exemple suivant copie le répertoire nommé TestDirectory1 dans TestDirectory2 en remplaçant les fichiers existants.

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

    Cet exemple de code est également disponible sous forme d'extrait de code IntelliSense. Dans le sélecteur d'extrait de code, il est localisé dans Système de fichiers - Traitement de lecteurs, de dossiers et de fichiers. Pour plus d'informations, consultez Comment : insérer des extraits de code dans votre code (Visual Basic).

Programmation fiable

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 dossier source n'existe pas (DirectoryNotFoundException).

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

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

  • Le chemin source et le chemin cible sont identiques (IOException).

  • ShowUI a la valeur UIOption.AllDialogs et l'utilisateur annule l'opération, ou un ou plusieurs fichiers du 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 est inaccessible (UnauthorizedAccessException).

Voir aussi

Tâches

Comment : rechercher des sous-répertoires avec un modèle spécifique dans Visual Basic

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

Référence

My.Computer.FileSystem.CopyDirectory, méthode