Compartir a través de


Función CopyFileA (winbase.h)

Copia un archivo existente en un archivo nuevo.

La función CopyFileEx proporciona dos funcionalidades adicionales. copyFileEx puede llamar a una función de devolución de llamada especificada cada vez que se completa una parte de la operación de copia y copyFileEx se puede cancelar durante la operación de copia.

Para realizar esta operación como una operación de transacción, use la función CopyFileTransacted.

Sintaxis

BOOL CopyFileA(
  [in] LPCSTR lpExistingFileName,
  [in] LPCSTR lpNewFileName,
  [in] BOOL   bFailIfExists
);

Parámetros

[in] lpExistingFileName

Nombre de un archivo existente.

De forma predeterminada, el nombre se limita a MAX_PATH caracteres. Para ampliar este límite a 32 767 caracteres anchos, anteponga "\\?\\ " a la ruta de acceso. Para obtener más información, vea Archivos de nomenclatura, rutas de acceso y espacios de nombres.

Propina

A partir de Windows 10, versión 1607, puedes optar por quitar la limitación del MAX_PATH sin tener que prepending "\\?\". Consulte la sección "Limitación máxima de longitud de ruta de acceso" de Archivos de nomenclatura, rutas de acceso y espacios de nombres para obtener más información.

Si no existe lpExistingFileName, CopyFile produce un error y GetLastError devuelve ERROR_FILE_NOT_FOUND.

[in] lpNewFileName

Nombre del nuevo archivo.

De forma predeterminada, el nombre se limita a MAX_PATH caracteres. Para ampliar este límite a 32 767 caracteres anchos, anteponga "\\?\\ " a la ruta de acceso. Para obtener más información, vea Archivos de nomenclatura, rutas de acceso y espacios de nombres.

Propina

A partir de Windows 10, versión 1607, puedes optar por quitar la limitación del MAX_PATH sin tener que prepending "\\?\". Consulte la sección "Limitación máxima de longitud de ruta de acceso" de Archivos de nomenclatura, rutas de acceso y espacios de nombres para obtener más información.

[in] bFailIfExists

Si este parámetro es TRUE y el nuevo archivo especificado por lpNewFileName ya existe, se produce un error en la función. Si este parámetro es FALSE y el nuevo archivo ya existe, la función sobrescribe el archivo existente y se realiza correctamente.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero.

Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Observaciones

Las propiedades del recurso de seguridad (ATTRIBUTE_SECURITY_INFORMATION) del archivo existente se copian en el nuevo archivo.

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: las propiedades de recursos de seguridad de para el archivo existente no se copian en el nuevo archivo hasta Windows 8 y Windows Server 2012.

Los atributos de archivo del archivo existente se copian en el nuevo archivo. Por ejemplo, si un archivo existente tiene el atributo FILE_ATTRIBUTE_READONLY file, una copia creada a través de una llamada a CopyFile también tendrá el atributo de archivo FILE_ATTRIBUTE_READONLY. Para obtener más información, vea recuperar y cambiar atributos de archivo.

Esta función produce un error con ERROR_ACCESS_DENIED si el archivo de destino ya existe y tiene el FILE_ATTRIBUTE_HIDDEN o FILE_ATTRIBUTE_READONLY atributo establecido.

Cuando copyFile se usa para copiar un archivo cifrado, intenta cifrar el archivo de destino con las claves usadas en el cifrado del archivo de origen. Si esto no se puede hacer, esta función intenta cifrar el archivo de destino con claves predeterminadas. Si no se puede realizar ninguno de estos métodos, copyFile produce un error ERROR_ENCRYPTION_FAILED código de error.

Comportamiento simbólico del vínculo: si el archivo de origen es un vínculo simbólico, el archivo real copiado es el destino del vínculo simbólico.

Si el archivo de destino ya existe y es un vínculo simbólico, el archivo de origen sobrescribe el destino del vínculo simbólico.

En Windows 8 y Windows Server 2012, esta función es compatible con las siguientes tecnologías.

Tecnología Soportado
Protocolo bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de volumen compartido de clúster (CsvFS)
Sistema de archivos resistente (ReFS)
 

Ejemplos

Para obtener un ejemplo, vea recuperar y cambiar atributos de archivo.

Nota

El encabezado winbase.h define CopyFile como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de winbase.h (incluya Windows.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

CopyFileEx

CopyFileTransacted

CreateFile

constantes de atributo de archivo de

funciones de administración de archivos

MoveFile

vínculos simbólicos