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
ERROR_BUFFER_OVERFLOW
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
Failover trasparente SMB 3.0 (TFO)
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO)
File system del volume condiviso del cluster (CsvFS)
File system resiliente (ReFS)
 

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

Vedere anche

CreateFile

DeleteFile

Funzioni di gestione file

GetTempPath

Denominazione di file, percorsi e spazi dei nomi