Funzione CopyFileW (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 CopyFileW(
[in] LPCWSTR lpExistingFileName,
[in] LPCWSTR 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, anteporre "\\?\" al percorso. Per altre informazioni, vedere denominazione di file, percorsi e spazi dei nomi.
Mancia
A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente alla rimozione della limitazione MAX_PATH senza anteporre "\\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima della lunghezza del percorso" di 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, anteporre "\\?\" al percorso. Per altre informazioni, vedere denominazione di file, percorsi e spazi dei nomi.
Mancia
A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente alla rimozione della limitazione MAX_PATH senza anteporre "\\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima della lunghezza del percorso" di 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 ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
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: 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_HIDDEN o 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 nessuno di questi metodi può essere eseguito, CopyFile ha esito negativo con un codice di errore ERROR_ENCRYPTION_FAILED.
Comportamento del 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 | Sostenuto |
---|---|
Protocollo SMB (Server Message Block) 3.0 | Sì |
SMB 3.0 Transparent Failover (TFO) | Sì |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | Sì |
Cluster Shared Volume File System (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
Esempi
Per un esempio, vedere Recupero e modifica degli attributi di file.
Nota
L'intestazione winbase.h definisce CopyFile come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [app desktop | App UWP] |
server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
winbase.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |
Vedere anche
costanti dell'attributo file