Temp-Dateinamen erzeugen

Veröffentlicht am 01.10.2004

Manchmal ergibt sich der Bedarf, eine temporäre Datei anzulegen, in die Sie vorübergehend Daten auslagern wollen. Mit der API-Funktion „GetTempFileName“ können Sie einen zufälligen Dateinamen von Windows erzeugen lassen. Das Temp-Verzeichnis, in dem die Datei erstellt werden soll, läßt sich von der API-Funktion „GetTempPath“ ermitteln. 

Beide Funktionen werden in einem Access-Modul wie folgt deklariert: 

Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _ 
        (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 
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

Der erste Parameter der Funktion GetTempFileName enthält den Pfadnamen des Temp-Verzeichnisses, den die Funktion GetTempPath zurückgibt. Der zweite Parameter lpPrefixString ist eine kleine Zeichenkette mit zwei bzw. drei Zeichen, die den Beginn des Dateinames bestimmt. Wenn Sie eine 0 als dritten Parameter übergeben, wird dem Dateinamen ein Wert im Hexadezimalformat vervollständigt. Der vierte Parameter nimmt das Ergebnis der Funktion auf. 

Die folgende Beispielprozedur ermittelt zunächt das Temp-Verzeichnis und erzeugt dort einen Temp-Dateinamen: 

Private Sub TempDateiErzeugen () 
Dim ret As Long, length As Long 
Dim strTempVerz As String, strTempDatei As String 
    ' Verzeichnis ermitteln 
    strTempVerz = String$(255, 0) 
    length = Len(strTempVerz) 
    ret = GetTempPath(length, strTempVerz) 
    If ret <> 0 Then 
        strTempVerz = Left$(strTempVerz, ret) 
    Else 
        Debug.Print "Verzeichnis konnte nicht ermittelt werden!" 
        Exit Sub 
    End If 
    ' Dateinamen erzeugen 
    strTempDatei = String$(255, 0) 
    ret = GetTempFileName(strTempVerz, "TJ", 0, strTempDatei) 
    If ret <> 0 Then 
        strTempDatei = Left$(strTempDatei, InStr(1, strTempDatei, 
                                  ".TMP") + 3) ' Nullen abschneiden 
    Else 
        Debug.Print "Datei wurde nicht erzeugt!" 
    End If 
End Sub 

Diese Beispielprozedur sowie die API-Funktion GetTempFileName erzeugt nicht die Datei selber, sondern nur einen Dateinamen, den Sie verwenden können. 

Um die Datei zu erzeugen bzw. öffnen, benutzen Sie die Open-Anweisung: 

Open strTempDatei For Output As #1 
    ' Daten in die Temp-Datei schreiben 
Close #1 

Dateien, die Sie vorübergehen anlegen, sollten Sie nach ihrem Einsatz auch wieder löschen. Dies bewerkstelligen Sie beispielsweise mit Hilfe der Kill-Anweisung.

Unsere Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

JETZT KONTAKTIEREN

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.

JETZT KONTAKTIEREN