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 GetTempPath . La stringa non può superare i MAX_PATH-14 caratteri o GetTempFileName avrà esito negativo. Se questo parametro è NULL, la funzione ha esito negativo.
[in] lpPrefixString
Stringa del 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 la sezione 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 del 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 informazioni dettagliate 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. |
Commenti
La funzione GetTempFileName crea un nome file temporaneo nel formato seguente:
<path>\<pre><uuuu>. TMP
Nella tabella seguente viene descritta la sintassi del nome file.
Componente | Significato |
---|---|
<Percorso> | Percorso specificato dal parametro lpPathName |
<pre> | Prime tre lettere della stringa lpPrefixString |
<Uuuu> | Valore esadecimale di uUnique |
Se uUnique è zero, GetTempFileName crea un file vuoto e lo chiude. Se uUnique non è zero, è necessario creare manualmente il file. Viene creato solo un nome file, perché GetTempFileName non è in grado di garantire che il nome del 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ò avere prestazioni scarse durante la creazione di un numero elevato di file con lo stesso prefisso. In questi casi, è consigliabile creare nomi di file univoci in base al GUID.
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 risultanti durante la conversione di una stringa ANSI, un'applicazione deve chiamare la funzione CreateFile per creare un file temporaneo.
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ì |
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 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
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | fileapi.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |