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 | Sì |
Failover trasparente SMB 3.0 (TFO) | Sì |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | Sì |
File system del volume condiviso del cluster (CsvFS) | Sì |
File system resiliente (ReFS) | Sì |
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 |