Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0065: Temporäre Datei erstellen

 von 

Beschreibung 

Um eine temporäre Datei erstellen zu können muß zum einem ein 'Temp' Verzeichnis vorhanden sein, zum anderen kann man sich von Windows einen passenden Dateinamen generieren lassen, der in diesem Verzeichnis garantiert noch nicht vorhanden ist.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

GetTempFileNameA (GetTempFileName), GetTempPathA (GetTempPath)

Download:

Download des Beispielprojektes [2,32 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Listen-Steuerelement "List1"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label2"
' Steuerelement: Beschriftungsfeld "Label1"

Option Explicit

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

Private Sub Form_Load()
  Dim Temp$
    Temp = FindTemp
    If Temp <> "" Then
      Label2.Caption = Temp
    Else
      Label2.Caption = "Kein temporäres Verzeichnis vorhanden."
    End If
End Sub

Private Sub Command1_Click()
 Dim TempFile$
   TempFile = CreateTempFile
   If TempFile = "" Then
     MsgBox ("Temporäre Datei konnte nicht erstelllt werden.")
   Else
      List1.AddItem TempFile
   End If
End Sub

Private Sub Command2_Click()
  Dim X%
    If List1.ListCount <> 0 Then
      For X = 0 To List1.ListCount - 1
        Call DeleteTempFile(List1.List(X))
      Next X
    End If
    List1.Clear
End Sub

Private Function FindTemp() As String
  Dim Result&, Buff$
    Buff = Space$(MAX_PATH)
    Result = GetTempPath(Len(Buff), Buff)
    FindTemp = Left$(Buff, Result)
End Function

Private Function CreateTempFile() As String
  Dim TempDir$, Result&, Buff$
    
    TempDir = FindTemp
    If TempDir = "" Then Exit Function
    
    Buff = Space$(MAX_PATH)
    Result = GetTempFileName(TempDir, "~VB", 0&, Buff)
    If Result = 0 Then Exit Function

    Result = InStr(1, Buff, Chr(0))
    If Result > 0 Then
      CreateTempFile = Left$(Buff, Result - 1)
    Else
      CreateTempFile = Buff
    End If
End Function

Private Sub DeleteTempFile(File$)
  Kill File
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.