Funzione MoveFile (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 MoveFile(
  [in] LPCTSTR lpExistingFileName,
  [in] LPCTSTR 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.

Requisiti

   
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