Cómo: Copiar un directorio en otro directorio en Visual Basic

Use el método CopyDirectory para copiar un directorio en otro directorio. Este método copia el contenido del directorio además del propio directorio. Si el directorio de destino no existe, se creará. Si existe un directorio con el mismo nombre en la ubicación de destino y overwrite se establece en False, se combinará el contenido de los dos directorios. Puede especificar un nuevo nombre para el directorio durante la operación.

Al copiar archivos en un directorio, pueden iniciarse excepciones producidas por un archivo concreto, como un archivo existente durante una combinación mientras overwrite está establecido en False. Cuando estas excepciones se inician, se consolidan en una sola excepción, cuya propiedad Data contiene entradas en las que la ruta de acceso del archivo o directorio es la clave y el mensaje de excepción concreto está contenido en el valor correspondiente.

Para copiar un directorio en otro

  • Use el método CopyDirectory y especifique los nombres de los directorios de origen y destino. En el ejemplo siguiente se copia el directorio denominado TestDirectory1 en TestDirectory2, lo que sobrescribe los archivos existentes.

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

    Este ejemplo de código también está disponible como fragmento de código de IntelliSense. En el selector de fragmentos de código, se encuentra en Sistema de archivos - procesamiento de unidades, carpetas y archivos. Para obtener más información, vea Fragmentos de código.

Programación sólida

Las condiciones siguientes pueden provocar una excepción:

  • El nuevo nombre especificado para el directorio contiene un signo de dos puntos (:) o una barra diagonal (\ o /) (ArgumentException).

  • La ruta de acceso no es válida por una de las razones siguientes: es una cadena de longitud cero, solo contiene un espacio en blanco, contiene caracteres no válidos o es una ruta de acceso de dispositivo (empieza por \\.\) (ArgumentException).

  • La ruta de acceso no es válida porque es Nothing (ArgumentNullException).

  • destinationDirectoryName es Nothing o una cadena vacía (ArgumentNullException)

  • El directorio de origen no existe (DirectoryNotFoundException).

  • El directorio de origen es un directorio raíz (IOException).

  • La ruta de acceso combinada apunta a un archivo existente (IOException).

  • Las rutas de acceso de origen y destino son iguales (IOException).

  • ShowUI se establece en UIOption.AllDialogs y el usuario cancela la operación o uno o más archivos del directorio no pueden copiarse (OperationCanceledException).

  • La operación es cíclica (InvalidOperationException).

  • La ruta de acceso contiene un signo de dos puntos (:) (NotSupportedException).

  • La ruta supera la longitud máxima definida por el sistema (PathTooLongException).

  • Un nombre de archivo o de carpeta de la ruta de acceso contiene un signo de dos puntos (:) o tiene un formato no válido (NotSupportedException).

  • El usuario no tiene los permisos necesarios para ver la ruta de acceso (SecurityException).

  • Un archivo de destino existe pero no se puede acceder a él (UnauthorizedAccessException).

Vea también