Guide pratique pour copier un répertoire vers un autre répertoire en Visual Basic

Utilisez la méthode CopyDirectory pour copier un répertoire vers un autre répertoire. 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 et que overwrite a la valeur False, 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 des fichiers dans un répertoire, des exceptions provoquées par un fichier spécifique peuvent être levées, par exemple si un fichier existe au cours d’une fusion alors que overwrite a la valeur False. Quand ces exceptions sont levées, elles sont consolidées en une exception unique dont la propriété Data contient des entrées dans lesquelles le chemin du fichier ou répertoire est la clé et le message d’exception spécifique est contenu dans la valeur correspondante.

Pour copier un répertoire vers un autre répertoire

  • Utilisez la méthode CopyDirectory, en spécifiant les noms des 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 la forme d’un extrait de code IntelliSense. Dans le sélecteur d’extraits de code, il se trouve dans Système de fichiers - Traitement des lecteurs, dossiers et fichiers. Pour plus d’informations, consultez Extraits de code.

Programmation fiable

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

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

  • Le chemin n’est pas valide pour l’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’appareil (qui commence par \\.\) (ArgumentException).

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

  • destinationDirectoryName est soit Nothing soit 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 combiné pointe vers 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 dans le répertoire ne peuvent pas être copiés (OperationCanceledException).

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

  • Le chemin contient un 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 dans le chemin 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 (SecurityException).

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

Voir aussi