Funzione MoveFileW (winbase.h)

Sposta un file esistente o una directory, inclusi i relativi elementi figlio.

Per specificare come spostare il file, usare la funzione MoveFileEx o MoveFileWithProgress .

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

Sintassi

BOOL MoveFileW(
  [in] LPCWSTR lpExistingFileName,
  [in] LPCWSTR lpNewFileName
);

Parametri

[in] lpExistingFileName

Nome corrente del file o della directory nel computer locale.

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] lpNewFileName

Nuovo nome per il file o la directory. Il nuovo nome non deve già esistere. Un nuovo file può trovarsi in un file system o un'unità diversa. Una nuova directory deve trovarsi nella stessa unità.

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 .

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

La funzione MoveFile sposta (rinomina ) un file o una directory (inclusi i relativi elementi figlio) nella stessa directory o tra directory. Un'eccezione è che la funzione MoveFile avrà esito negativo nella directory quando la destinazione è in un volume diverso.

Se un file viene spostato tra volumi, MoveFile non sposta il descrittore di sicurezza con il file. Il file verrà assegnato al descrittore di sicurezza predefinito nella directory di destinazione.

La funzione MoveFile coordina l'operazione con il servizio di rilevamento dei collegamenti, in modo che le origini di collegamento possano essere rilevate man mano che vengono spostate.

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) Vedere il commento
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) Vedere il commento
File system del volume condiviso del cluster (CsvFS)
File system resiliente (ReFS)
 

SMB 3.0 non supporta la ridenominazione di flussi di dati alternativi nelle condivisioni file con funzionalità di disponibilità continua.

Nota

L'intestazione winbase.h definisce MoveFile 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 di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

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

Vedere anche

CopyFile

Funzioni di gestione file

MoveFileEx

MoveFileTransacted

MoveFileWithProgress