Condividi tramite


Funzione GetTempFileNameA (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 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 GetTempPath2 . 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 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 le funzioni verificano 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
ERROR_BUFFER_OVERFLOW
La lunghezza della stringa a cui punta il parametro lpPathName è maggiore di MAX_PATH-14 caratteri.

Osservazioni

La funzione GetTempFileName crea un nome file temporaneo nel formato seguente:

<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 lpPrefixString
< > 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 per creare un file temporaneo.

In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Sostenuto
Protocollo SMB (Server Message Block) 3.0
SMB 3.0 Transparent Failover (TFO)
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO)
Cluster Shared Volume File System (CsvFS)
Resilient File System (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 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

Vedere anche

CreateFile

DeleteFile

funzioni di gestione file

GetTempPath2

denominazione di file, percorsi e spazi dei nomi