Share via


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

Aggiornamento: novembre 2007

Utilizzare il metodo Metodo My.Computer.FileSystem.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

  • Utilizzare 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 è anche disponibile 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 ulteriori informazioni, vedere Procedura: inserire frammenti nel codice (Visual Basic).

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 seguenti motivi: è una stringa di lunghezza zero, contiene solo spazi vuoti, contiene caratteri non validi o è il percorso di una periferica, vale a dire 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 principale (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 uno o più file nella directory non possono essere copiati (OperationCanceledException).

  • Questa operazione è ciclica (InvalidOperationException).

  • Il percorso contiene il segno dei due punti (:) (NotSupportedException).

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

  • Un nome di file o di 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 aprirlo (UnauthorizedAccessException).

Vedere anche

Attività

Procedura: cercare sottodirectory con un criterio di ricerca specifico in Visual Basic

Procedura: ottenere l'insieme di file di una directory in Visual Basic

Procedura: spostare una directory in Visual Basic

Procedura: spostare il contenuto di una directory in Visual Basic

Riferimenti

Metodo My.Computer.FileSystem.CopyDirectory