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 |
---|---|
Contrôle la possibilité d'accéder à des fichiers et à des dossiers. Énumération associée : Unrestricted. |
|
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