Funzione GetTempFileNameA (fileapi.h)
Crea un nome per un file temporaneo. Se viene generato un nome di file univoco, viene creato un file vuoto e l'handle viene rilasciato; in caso contrario, viene generato solo un nome di file.
Sintassi
UINT GetTempFileNameA(
[in] LPCSTR lpPathName,
[in] LPCSTR lpPrefixString,
[in] UINT uUnique,
[out] LPSTR 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ò essere più lunga di MAX_PATH-14 caratteri o GetTempFileName avrà esito negativo. Se questo parametro è NULL, la funzione ha esito negativo.
[in] lpPrefixString
Stringa di prefisso con terminazione null. La funzione usa fino ai primi tre caratteri di questa stringa come prefisso del nome del file. Questa stringa deve essere costituita da caratteri nel set di caratteri definito dall'OEM.
[in] uUnique
Intero senza segno da usare per la creazione del nome file temporaneo. Per altre informazioni, vedere la sezione Osservazioni.
Se uUnique è zero, la funzione tenta di formare un nome di file univoco usando l'ora di sistema corrente. Se il file esiste già, il numero viene aumentato di uno e le funzioni verifica se il file esiste già. Questo continua fino a quando non viene trovato un nome file univoco; la funzione crea un file in base al nome e lo chiude. Si noti che la funzione non tenta di verificare l'univocità del nome del 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 supportare il percorso e il carattere null finale.
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 puntata dal parametro lpPathName è maggiore di MAX_PATH-14 caratteri. |
Commenti
La funzione GetTempFileName crea un nome file temporaneo del modulo 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 autonomamente il file. Viene creato solo un nome di 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 . Ciò 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ò eseguire male durante la creazione di un numero elevato di file con lo stesso prefisso. In questi casi, è consigliabile costruire nomi di file univoci in base al 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 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 con scalabilità orizzontale (SO) | Sì |
File system del volume condiviso del cluster (CsvFS) | Sì |
File system resiliente (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 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
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 (includere Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |