Rubrik: Dateisystem | 09.05.01 |
GetTempFileName-Funktion Diese Funktion erstellt eine temporäre Datei in einem angegebenem Pfad. | ||
Betriebssystem: Win95, Win98, WinNT, Win2000, WinME | Views: 13.217 |
Beschreibung:
Diese Funktion erstellt eine temporäre Datei in einem angegebenem Pfad. Die Datei wird nur erstellt, wenn für wUnique eine "0" angegeben wird, ansonsten wird nur ein Pfadname zurückgegeben. Die Dateinamen haben immer die Endung ".tmp". Diese Funktion ist auch erfolgreich, wenn der Dateiname bereits existiert. Das Format der temporären Datei setzt sich aus einem 3-Zeichen langem String und einer 4-Zeichen langen Hexdezimalzahl zusammen. Dabei kann man angeben, ob Windows eine zufällige Hexdezimalzahl generieen soll, oder aber die Zahl benutzt werden soll, welche man angibt.
Deklaration:
Declare Function GetTempFileName Lib "kernel32" _ Alias "GetTempFileNameA" ( _ ByVal lpszPath As String, _ ByVal lpPrefixString As String, _ ByVal wUnique As Long, _ ByVal lpTempFileName As String) As Long
Parameter:
lpszPath | Erwartet ein gültiges Verzeichnis, in welches die temporäre Datei erstellt werden soll. Typischerweise wird hier das Ergebnis von GetTempPath verwendet. |
lpPrefixString | Erwartet eine Zeichnfolge, die den Platz der ersten 3-Zeichen der temporären Datei bestimmt. Werden mehr als 3 Zeichen angegeben, so werden die restlichen ignoriert. |
wUnique | Geben Sie hier 0 an, wenn eine zufällige Hexadezimalzahl generiert werden soll. |
lpTempFileName | Ausreichend große Stringvariable, welche den vollständigen temporären Dateinamen enthalten soll. |
Rückgabewert:
War der Funktionsaufruf erfolgreich enthält lpTempFile den temporären Dateinamen. Die 4-stellige Hexadezimalzahl wird dann als Funktionsrückgabewert zurückgegeben. Tritt ein Fehler auf (z.B. dann, wenn eine ungülitge Pfadangabe angegeben wurde), wird 0 zurückgegeben.
Beispiel:
Private Declare Function GetTempFileName Lib "kernel32.dll" _ Alias "GetTempFileNameA" ( _ ByVal lpszPath As String, _ ByVal lpPrefixString As String, _ ByVal wUnique As Long, _ ByVal lpTempFileName As String) As Long
Private Sub Command1_Click() Dim RetVal As Long Dim TempFilename As String Dim MsgResult As Long TempFilename = Space(256) RetVal = GetTempFileName(App.Path, "API", 0&, TempFilename) If RetVal <> 0 Then TempFilename = Left$(TempFilename, _ InStr(1, TempFilename, vbNullChar) - 1) MsgResult = MsgBox("Datei wurde erfolgreich erstellt" & _ vbCrLf & "Wieder löschen?", vbYesNo + vbQuestion, TempFilename) If MsgResult = vbYes Then Kill TempFilename End If End Sub