Compartir a través de


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

Actualización: noviembre 2007

Utilice el método My.Computer.FileSystem.CopyDirectory (Método) para copiar un directorio en otro directorio. Este método copia el contenido del directorio así como el 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 está establecido en False, se combinará el contenido de los dos directorios. Puede especificar un nuevo nombre para el directorio durante la operación.

Cuando se copian archivos dentro de un directorio, se pueden producir excepciones producidas por un archivo concreto, como que un archivo existe durante una combinación mientras overwrite está establecido en False. Cuando se producen dichas excepciones, se consolidan en una excepción única, cuya propiedad Data contiene entradas en las que la ruta de acceso del archivo o del directorio es la clave y el mensaje de excepción concreto está contenido en el valor correspondiente.

Para copiar un directorio en otro directorio

  • Utilice el método CopyDirectory, especificando los nombres de directorio de origen y de destino. En el siguiente ejemplo se copia el directorio denominado TestDirectory1 en TestDirectory2, sobrescribiendo 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 - Procesando unidades, carpetas y archivos. Para obtener más información, vea Cómo: Insertar fragmentos de código en el código (Visual Basic).

Programación eficaz

Las condiciones siguientes pueden producir 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, sólo 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).

  • La ruta de acceso de origen y la ruta de acceso de destino son iguales (IOException).

  • ShowUI está establecido en UIOption.AllDialogs y el usuario cancela la operación o no se puede copiar uno o más archivos del directorio (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 en la ruta de acceso contiene dos puntos (:) o está en un formato no válido (NotSupportedException).

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

  • Existe un archivo de destino pero no se puede obtener acceso a él (UnauthorizedAccessException).

Vea también

Tareas

Cómo: Buscar subdirectorios con un modelo específico en Visual Basic

Cómo: Obtener la colección de archivos de un directorio en Visual Basic

Cómo: Mover un directorio en Visual Basic

Cómo: Mover el contenido de un directorio en Visual Basic

Referencia

My.Computer.FileSystem.CopyDirectory (Método)