Compartir a través de


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

Actualización: noviembre 2007

Copia un directorio en otro directorio.

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

Parámetros

  • sourceDirectoryName
    String. Directorio que se va a copiar. Obligatorio.

  • destinationDirectoryName
    String. Ubicación donde se debe copiar el directorio. Obligatorio.

  • overwrite
    Boolean. Si deben sobrescribirse o no los archivos existentes. El valor predeterminado es False. Obligatorio.

  • showUI
    UIOption. Indica si se debe hacer un seguimiento visual del progreso de la operación. El valor predeterminado es UIOption.OnlyErrorDialogs. Obligatorio.

  • onUserCancel
    UICancelOption. Especifica qué se debe hacer si el usuario hace clic en Cancelar durante la operación. El valor predeterminado es ThrowException. Obligatorio.

Excepciones

Las condiciones siguientes pueden producir una excepción:

  • El nuevo nombre especificado para el directorio contiene 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).

  • Los puntos de la ruta de acceso señalan a un archivo existente (IOException).

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

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

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

  • La ruta de acceso contiene 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).

Comentarios

Este método copia el contenido del directorio así como el propio directorio. Si el directorio de destino no existe, se crea. Si existe un directorio con el mismo nombre en la ubicación de destino, se combina 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 un archivo que existe durante una combinación mientras se establece overwrite en False. Cuando se producen dichas excepciones, se consolidan en una excepción única cuya propiedad Data contiene entradas en forma de IDictionary, donde 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. Utilice For…Each para enumerar mediante las entradas.

Tareas

La tabla siguiente muestra una lista de ejemplos de tareas en las que está implicado el método My.Computer.FileSystem.CopyDirectory.

Para

Vea

Copiar un directorio.

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

Ejemplo

En el siguiente ejemplo se copia el directorio TestDirectory1 en TestDirectory2, sobrescribiendo los archivos existentes.

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

Reemplace C:\TestDirectory1 y C:\TestDirectory2 con la ruta de acceso y el nombre del directorio que desea copiar y la ubicación donde desea copiarlo.

Requisitos

Espacio de nombres:Microsoft.VisualBasic.MyServices

Clase:FileSystemProxy (proporciona acceso a FileSystem)

Ensamblado: biblioteca en tiempo de ejecución de Visual Basic (en Microsoft.VisualBasic.dll)

Disponibilidad por tipo de proyecto

Tipo de proyecto

Disponible

Aplicación para Windows

Biblioteca de clases

Aplicación de consola

Biblioteca de controles de Windows

Biblioteca de controles Web

Servicio de Windows

Sitio Web

Permisos

Los permisos siguientes pueden ser necesarios:

Permiso

Descripción

FileIOPermission

Controla la capacidad de tener acceso a archivos y carpetas. Enumeración asociada: Unrestricted.

UIPermission

Controla los permisos relacionados con interfaces de usuario y el Portapapeles. Enumeración asociada: SafeSubWindows.

Para obtener más información, vea Seguridad de acceso a código y Solicitar permisos.

Vea también

Tareas

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

Cómo: Analizar rutas de acceso a archivos en Visual Basic

Cómo: Determinar la ruta de acceso absoluta de un archivo en Visual Basic

Cómo: Determinar si existe un directorio en Visual Basic

Referencia

My.Computer.FileSystem (Objeto)

UICancelOption (Enumeración)