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 _ )
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).
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.
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 |
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.
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 |
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.