Funzione MoveFileA (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, utilizzare la funzione MoveFileTransacted .

Sintassi

BOOL MoveFileA(
  [in] LPCSTR lpExistingFileName,
  [in] LPCSTR 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, anteporre "\\?\" al percorso. Per altre informazioni, vedere Denominazione di file, percorsi e spazi dei nomi.

Suggerimento

A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente a rimuovere la limitazione MAX_PATH senza anteporre "\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima della lunghezza del percorso" di Denominazione di file, percorsi e spazi dei nomi .

[in] lpNewFileName

Nuovo nome per il file o la directory. Il nuovo nome non deve esistere già. Un nuovo file può trovarsi in un file system o in 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, anteporre "\\?\" al percorso. Per altre informazioni, vedere Denominazione di file, percorsi e spazi dei nomi.

Suggerimento

A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente a rimuovere la limitazione MAX_PATH senza anteporre "\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima della lunghezza del percorso" di Denominazione di file, 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 sposterà (rinomina) un file o una directory (inclusi i relativi elementi figlio) nella stessa directory o tra directory. L'unica avvertenza è che la funzione MoveFile avrà esito negativo negli spostamenti della directory quando la destinazione si trova in un volume diverso.

Se un file viene spostato tra volumi, MoveFile non sposta il descrittore di sicurezza con il file. Al file verrà assegnato il 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 di scalabilità orizzontale (SO) Vedere il commento
File system del volume condiviso cluster (CsvFS)
Resilient File System (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 indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

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