Condividi tramite


Funzione CopyFile (winbase.h)

Copia un file esistente in un nuovo file.

La funzione CopyFileEx offre due funzionalità aggiuntive. CopyFileEx può chiamare una funzione di callback specificata ogni volta che viene completata una parte dell'operazione di copia e CopyFileEx può essere annullata durante l'operazione di copia.

Per eseguire questa operazione come operazione transazionata, usare la funzione CopyFileTransacted .

Sintassi

BOOL CopyFile(
  [in] LPCTSTR lpExistingFileName,
  [in] LPCTSTR lpNewFileName,
  [in] BOOL    bFailIfExists
);

Parametri

[in] lpExistingFileName

Nome di un file esistente.

Per impostazione predefinita, il nome è limitato a MAX_PATH caratteri. Per estendere questo limite a 32.767 caratteri wide, prependo "\\?\" al percorso. Per altre informazioni, vedere Denominazione di file, percorsi e spazi dei nomi.

Suggerimento

A partire da Windows 10, versione 1607, è possibile scegliere di rimuovere la limitazione MAX_PATH senza pre sospeso "\\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima lunghezza percorso" di nomi, nomi, percorsi e spazi dei nomi .

Se lpExistingFileName non esiste, CopyFile ha esito negativo e GetLastError restituisce ERROR_FILE_NOT_FOUND.

[in] lpNewFileName

Nome del nuovo file.

Per impostazione predefinita, il nome è limitato a MAX_PATH caratteri. Per estendere questo limite a 32.767 caratteri wide, prependo "\\?\" al percorso. Per altre informazioni, vedere Denominazione di file, percorsi e spazi dei nomi.

Suggerimento

A partire da Windows 10, versione 1607, è possibile scegliere di rimuovere la limitazione MAX_PATH senza pre sospeso "\\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima lunghezza percorso" di nomi, nomi, percorsi e spazi dei nomi .

[in] bFailIfExists

Se questo parametro è TRUE e il nuovo file specificato da lpNewFileName esiste già, la funzione ha esito negativo. Se questo parametro è FALSE e il nuovo file esiste già, la funzione sovrascrive il file esistente e ha esito positivo.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Le proprietà delle risorse di sicurezza (ATTRIBUTE_SECURITY_INFORMATION) per il file esistente vengono copiate nel nuovo file.

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Le proprietà delle risorse di sicurezza per il file esistente non vengono copiate nel nuovo file fino a Windows 8 e Windows Server 2012.

Gli attributi di file per il file esistente vengono copiati nel nuovo file. Ad esempio, se un file esistente ha l'attributo file FILE_ATTRIBUTE_READONLY , una copia creata tramite una chiamata a CopyFile avrà anche l'attributo file FILE_ATTRIBUTE_READONLY . Per altre informazioni, vedere Recupero e modifica degli attributi di file.

Questa funzione ha esito negativo con ERROR_ACCESS_DENIED se il file di destinazione esiste già e ha il FILE_ATTRIBUTE_HIDDENo FILE_ATTRIBUTE_READONLY attributo impostato.

Quando CopyFile viene usato per copiare un file crittografato, tenta di crittografare il file di destinazione con le chiavi usate nella crittografia del file di origine. Se non è possibile eseguire questa operazione, questa funzione tenta di crittografare il file di destinazione con chiavi predefinite. Se non è possibile eseguire nessuno di questi metodi, CopyFile non riesce con un codice di errore ERROR_ENCRYPTION_FAILED .

Comportamento di collegamento simbolico: se il file di origine è un collegamento simbolico, il file effettivo copiato è la destinazione del collegamento simbolico.

Se il file di destinazione esiste già ed è un collegamento simbolico, la destinazione del collegamento simbolico viene sovrascritta dal file di origine.

In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0
Failover trasparente SMB 3.0 (TFO)
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO)
File system del volume condiviso del cluster (CsvFS)
File system resiliente (ReFS)
 

Esempi

Per un esempio, vedere Recupero e modifica degli attributi di file.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

CopyFileEx

CopyFileTransacted

CreateFile

Costanti dell'attributo file

Funzioni di gestione file

MoveFile

Collegamenti simbolici