Temp-Dateinamen erzeugen

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.

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.

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.