GetTempFileNameA-Funktion (fileapi.h)
Erstellt einen Namen für eine temporäre Datei. Wenn ein eindeutiger Dateiname generiert wird, wird eine leere Datei erstellt und der Handle für sie freigegeben. andernfalls wird nur ein Dateiname generiert.
Syntax
UINT GetTempFileNameA(
[in] LPCSTR lpPathName,
[in] LPCSTR lpPrefixString,
[in] UINT uUnique,
[out] LPSTR lpTempFileName
);
Parameter
[in] lpPathName
Der Verzeichnispfad für den Dateinamen. Anwendungen geben in der Regel einen Punkt (.) für das aktuelle Verzeichnis oder das Ergebnis der GetTempPath2--Funktion an. Die Zeichenfolge darf nicht länger als MAX_PATH-14 Zeichen sein, oder GetTempFileName- schlägt fehl. Wenn dieser Parameter NULL-ist, schlägt die Funktion fehl.
[in] lpPrefixString
Die Zeichenfolge mit dem Präfix null beendet. Die Funktion verwendet bis zu den ersten drei Zeichen dieser Zeichenfolge als Präfix des Dateinamens. Diese Zeichenfolge muss aus Zeichen im OEM-definierten Zeichensatz bestehen.
[in] uUnique
Eine nicht signierte ganze Zahl, die beim Erstellen des temporären Dateinamens verwendet werden soll. Weitere Informationen finden Sie in den Hinweisen.
Wenn uUnique null ist, versucht die Funktion, einen eindeutigen Dateinamen mithilfe der aktuellen Systemzeit zu bilden. Wenn die Datei bereits vorhanden ist, wird die Zahl um eine erhöht, und die Funktionen testen, ob diese Datei bereits vorhanden ist. Dies wird fortgesetzt, bis ein eindeutiger Dateiname gefunden wird; die Funktion erstellt eine Datei anhand dieses Namens und schließt sie. Beachten Sie, dass die Funktion nicht versucht, die Eindeutigkeit des Dateinamens zu überprüfen, wenn uUnique ungleich Null ist.
[out] lpTempFileName
Ein Zeiger auf den Puffer, der den temporären Dateinamen empfängt. Dieser Puffer sollte MAX_PATH Zeichen sein, um den Pfad und das endende Nullzeichen aufzunehmen.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt der Rückgabewert den eindeutigen numerischen Wert an, der im temporären Dateinamen verwendet wird. Wenn der parameter uUnique ungleich null ist, gibt der Rückgabewert dieselbe Zahl an.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Es folgt ein möglicher Rückgabewert.
Rückgabewert | Beschreibung |
---|---|
|
Die Länge der Zeichenfolge, auf die der lpPathName-Parameter verweist, beträgt mehr als MAX_PATH-14 Zeichen. |
Bemerkungen
Die GetTempFileName--Funktion erstellt einen temporären Dateinamen des folgenden Formulars:
<Pfad>\<><uuuu>. TMP
In der folgenden Tabelle werden die Dateinamensyntax beschrieben.
Bestandteil | Bedeutung |
---|---|
<Pfad> | Vom parameter lpPathName angegebener Pfad |
<vorab> | Erste drei Buchstaben der lpPrefixString- Zeichenfolge |
<uuuu> | Hexadezimalwert von uUnique |
Wenn uUnique null ist, erstellt GetTempFileName eine leere Datei und schließt sie. Wenn uUnique nicht null ist, müssen Sie die Datei selbst erstellen. Es wird nur ein Dateiname erstellt, da GetTempFileName nicht garantieren kann, dass der Dateiname eindeutig ist.
Nur die unteren 16 Bits des uUnique Parameter werden verwendet. Dies beschränkt GetTempFileName- auf maximal 65.535 eindeutige Dateinamen, wenn die lpPathName- und lpPrefixString Parameter gleich bleiben.
Aufgrund des Algorithmus, der zum Generieren von Dateinamen verwendet wird, kann GetTempFileName- beim Erstellen einer großen Anzahl von Dateien mit demselben Präfix schlecht ausgeführt werden. In solchen Fällen wird empfohlen, eindeutige Dateinamen basierend auf GUIDs zu erstellen.
Temporäre Dateien, deren Namen von dieser Funktion erstellt wurden, werden nicht automatisch gelöscht. Um diese Dateien zu löschen, rufen Sie DeleteFileauf.
Um Probleme zu vermeiden, die beim Konvertieren einer ANSI-Zeichenfolge entstehen, sollte eine Anwendung die CreateFile--Funktion aufrufen, um eine temporäre Datei zu erstellen.
In Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.
Technologie | Abgestützt |
---|---|
Server Message Block (SMB) 3.0-Protokoll | Ja |
SMB 3.0 Transparent Failover (TFO) | Ja |
SMB 3.0 mit Skalierungsdateifreigaben (SO) | Ja |
Freigegebenes Clustervolumedateisystem (CsvFS) | Ja |
Resilient File System (ReFS) | Ja |
Beispiele
Ein Beispiel finden Sie unter Erstellen und Verwenden einer temporären Datei.
Anmerkung
Der Fileapi.h-Header definiert GetTempFileName als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | fileapi.h (include Windows.h) |
Library | Kernel32.lib |
DLL- | Kernel32.dll |