Funzione GetTempFileNameW (fileapi.h)
Crea un nome per un file temporaneo. Se viene generato un nome file univoco, viene creato un file vuoto e l'handle viene rilasciato; in caso contrario, viene generato solo un nome di file.
Sintassi
UINT GetTempFileNameW(
[in] LPCWSTR lpPathName,
[in] LPCWSTR lpPrefixString,
[in] UINT uUnique,
[out] LPWSTR lpTempFileName
);
Parametri
[in] lpPathName
Percorso della directory per il nome del file. Le applicazioni specificano in genere un punto (.) per la directory corrente o il risultato della funzione GetTempPath2
[in] lpPrefixString
Stringa di prefisso con terminazione Null. La funzione usa fino ai primi tre caratteri di questa stringa come prefisso del nome file. Questa stringa deve essere costituita da caratteri nel set di caratteri definito dall'OEM.
[in] uUnique
Intero senza segno da utilizzare per la creazione del nome file temporaneo. Per altre informazioni, vedere Osservazioni.
Se uUnique è zero, la funzione tenta di formare un nome file univoco usando l'ora di sistema corrente. Se il file esiste già, il numero viene aumentato di uno e la funzione verifica se il file esiste già. Questo continua fino a quando non viene trovato un nome file univoco; la funzione crea un file con tale nome e lo chiude. Si noti che la funzione non tenta di verificare l'univocità del nome file quando uUnique è diverso da zero.
[out] lpTempFileName
Puntatore al buffer che riceve il nome del file temporaneo. Questo buffer deve essere MAX_PATH caratteri per contenere il percorso più il carattere Null di terminazione.
Valore restituito
Se la funzione ha esito positivo, il valore restituito specifica il valore numerico univoco utilizzato nel nome file temporaneo. Se il parametro uUnique è diverso da zero, il valore restituito specifica lo stesso numero.
Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Di seguito è riportato un valore restituito possibile.
Valore restituito | Descrizione |
---|---|
|
La lunghezza della stringa a cui punta il parametro lpPathName è maggiore di MAX_PATH-14 caratteri. |
Osservazioni
La funzione GetTempFileName
<percorso>\<><uuuuuu>. TMP
Nella tabella seguente viene descritta la sintassi del nome file.
Componente | Significato |
---|---|
<percorso> | Percorso specificato dal parametro lpPathName |
< > | Prime tre lettere della stringa |
< > uuuu | Valore esadecimale di uUnique |
Se uUnique è zero, GetTempFileName crea un file vuoto e lo chiude. Se uUnique non è zero, è necessario creare il file manualmente. Viene creato solo un nome file, perché GetTempFileName non è in grado di garantire che il nome file sia univoco.
Vengono usati solo i 16 bit inferiori del parametro uUnique. Questo limita GetTempFileName a un massimo di 65.535 nomi di file univoci se i parametri lpPathName e lpPrefixString rimangono invariati.
A causa dell'algoritmo usato per generare nomi di file, GetTempFileName può comportare prestazioni scarse quando si crea un numero elevato di file con lo stesso prefisso. In questi casi, è consigliabile creare nomi di file univoci in base GUIDs.
I file temporanei i cui nomi sono stati creati da questa funzione non vengono eliminati automaticamente. Per eliminare questi file, chiamare DeleteFile.
Per evitare problemi che si verificano durante la conversione di una stringa ANSI, un'applicazione deve chiamare la funzione CreateFile
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 Creazione e uso di un file temporaneo.
Nota
L'intestazione fileapi.h definisce GetTempFileName 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 |
fileapi.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |