Share via


Procedura: copiare una directory in un'altra directory di Visual Basic

Usare il metodo CopyDirectory per copiare una directory in un'altra directory. Questo metodo consente di copiare il contenuto della directory nonché la directory stessa. Se la directory di destinazione non esiste, viene creata. Se è presente una directory con lo stesso nome nel percorso di destinazione e overwrite è impostato su False, il contenuto delle due directory viene unito. È possibile specificare un nuovo nome per la directory durante l'operazione.

Quando si copiano file in una directory, è possibile che vengano generate eccezioni causate da un file specifico, ad esempio un file presente durante un'unione con overwrite impostato su False. Quando vengono generate, queste eccezioni vengono consolidate in un'unica eccezione, la cui proprietà Data contiene le voci in cui il percorso del file o della directory è la chiave e il messaggio di eccezione specifico è contenuto nel valore corrispondente.

Per copiare una directory in un'altra directory

  • Usare il metodo CopyDirectory specificando i nomi della directory di origine e di destinazione. Nell'esempio di codice riportato di seguito la directory denominata TestDirectory1 viene copiata in TestDirectory2, sovrascrivendo i file esistenti.

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

    Questo esempio di codice è disponibile anche come frammento di codice IntelliSense. Nella casella di selezione dei frammenti di codice si trova in File system - Elaborazione di unità, cartelle e file. Per altre informazioni, vedere Code Snippets.

Programmazione efficiente

Le seguenti condizioni possono generare un'eccezione:

  • Il nuovo nome specificato per la directory contiene il segno dei due punti (:) o una barra (\ o /) (ArgumentException).

  • Il percorso non è valido per uno dei motivi seguenti: è una stringa di lunghezza zero, contiene solo spazi vuoti, contiene caratteri non validi o è il percorso di un dispositivo (inizia con \\.\) (ArgumentException).

  • Il percorso non è valido in quanto è Nothing (ArgumentNullException).

  • destinationDirectoryName è Nothing o una stringa vuota (ArgumentNullException)

  • La directory di origine non esiste (DirectoryNotFoundException).

  • La directory di origine è una directory radice (IOException).

  • Il percorso combinato punta a un file esistente (IOException).

  • Il percorso di origine e il percorso di destinazione coincidono (IOException).

  • ShowUI è impostato su UIOption.AllDialogs e l'utente annulla l'operazione oppure non è possibile copiare uno o più file nella directory (OperationCanceledException).

  • L'operazione è ciclica (InvalidOperationException).

  • Il percorso contiene i due punti (:) (NotSupportedException).

  • La lunghezza del percorso supera la lunghezza massima definita dal sistema (PathTooLongException).

  • Il nome di un file o di una cartella nel percorso contiene i due punti (:) o ha un formato non valido (NotSupportedException).

  • L'utente non dispone delle autorizzazioni necessarie per visualizzare il percorso (SecurityException).

  • Esiste un file di destinazione ma non è possibile accedervi (UnauthorizedAccessException).

Vedi anche