Funzione CopyFile2 (winbase.h)
Copia un file esistente in un nuovo file, notificando all'applicazione lo stato di avanzamento tramite una funzione di callback.
Sintassi
HRESULT CopyFile2(
[in] PCWSTR pwszExistingFileName,
[in] PCWSTR pwszNewFileName,
[in, optional] COPYFILE2_EXTENDED_PARAMETERS *pExtendedParameters
);
Parametri
[in] pwszExistingFileName
Nome di un file esistente.
Per estendere questo limite a 32.767 caratteri wide, anteporre "\?" al percorso. Per altre informazioni, vedere Denominazione di file, percorsi e spazi dei nomi.
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
.
[in] pwszNewFileName
Nome del nuovo file.
Per estendere questo limite a 32.767 caratteri wide, anteporre "\?" al percorso. Per altre informazioni, vedere Denominazione di file, percorsi e spazi dei nomi.
[in, optional] pExtendedParameters
Indirizzo facoltativo di una struttura di COPYFILE2_EXTENDED_PARAMETERS .
Valore restituito
Se la funzione ha esito positivo, il valore restituito restituirà TRUE quando viene passato alla macro SUCCEEDED .
Codice restituito | Descrizione |
---|---|
|
Operazione di copia completata. |
|
L'operazione di copia è stata sospesa da un COPYFILE2_PROGRESS_PAUSE restituito dalla funzione di callback CopyFile2ProgressRoutine . |
|
L'operazione di copia è stata sospesa da una COPYFILE2_PROGRESS_CANCEL o COPYFILE2_PROGRESS_STOP restituita dalla funzione di callback CopyFile2ProgressRoutine . |
|
Il membro dwCopyFlags della struttura COPYFILE2_EXTENDED_PARAMETERS passato attraverso il parametro pExtendedParameters contiene il flag COPY_FILE_FAIL_IF_EXISTS e esiste un nome in conflitto. |
|
Il membro dwCopyFlags della struttura COPYFILE2_EXTENDED_PARAMETERS passato attraverso il parametro pExtendedParameters contiene il flag COPY_FILE_FAIL_IF_EXISTS e esiste un nome in conflitto. |
Commenti
Questa funzione mantiene gli attributi estesi, l'archiviazione strutturata OLE, i flussi di dati alternativi del file system NTFS e gli attributi dei file. Gli attributi di sicurezza per il file esistente non vengono copiati nel nuovo file. Per copiare gli attributi di sicurezza, usare la funzione SHFileOperation .
Questa funzione ha esito negativo se HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
il file di destinazione esiste già e ha il set di attributi FILE_ATTRIBUTE_HIDDEN o FILE_ATTRIBUTE_READONLY .
Per compilare un'applicazione che usa questa funzione, definire la macro _WIN32_WINNT come _WIN32_WINNT_WIN8 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.
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 di scalabilità orizzontale (SO) | Sì |
File system del volume condiviso cluster (CsvFS) | Sì |
Resilient File System (ReFS) | Sì |
A partire da Windows 10, versione 1903 e Windows Server 2022, è supportato un nuovo valore, COPY_FILE_REQUEST_COMPRESSED_TRAFFIC, per il campo dwCopyFlags della struttura COPYFILE2_EXTENDED_PARAMETERS passata nell'argomento pExtendedParameters a questa funzione. Questo nuovo valore richiede che il canale di trasferimento sottostante comprima i dati durante l'operazione di copia. La richiesta potrebbe non essere supportata per tutti i supporti, nel qual caso viene ignorata. Gli attributi e i parametri di compressione (complessità computazionale, utilizzo della memoria) non sono configurabili tramite questa API e sono soggetti a modifiche tra versioni diverse del sistema operativo. In Windows 10 il flag è supportato per i file che risiedono in condivisioni SMB, in cui la versione del protocollo SMB negoziata è SMB v3.1.1 o successiva.
Requisiti
Client minimo supportato | Windows 8 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2012 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | winbase.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |