Home > Visual Basic Classic > Windows > Aktuellen Pfad des Temp Ordners ermitteln

Aktuellen Pfad des Temp Ordners ermitteln

Veröffentlicht am 24.07.2008 von Sebastian Krogolewski

Artikelinformationen

Sprache:
Visual Basic 6
Datenbank:
keine

Artikel speichern

del.icioMister WongGoogleLinkarenaYiggSpurlFurl

Artikel bewerten

Bewertng:2.75 / 5 (4 mal bewertet)

Es gibt 2 verschiedene Möglichkeiten wie man den aktuellen Pfad des Temp Ordners ermitteln kann.

1. Abfragen der Tmp oder Temp Umgebungsvariable.
2. Über die Win API Funktion GetTempPathA bzw. GetTempPathW aus der Kernel32.Dll.

 

Möglichkeit 1:

1
2
3
4
56
7
8
9
1011
12
13
14
1516
17
18
19
Public Function GetTempPath(Optional ByVal AddBackslash As Boolean) As String
Dim nTempDir As String
 
On Error Resume Next
    'aktuellen Wert für "temp" Umgebungsvariable ermitteln    nTempDir = Environ$("temp")
    
    'Wenn Leerstring dann Wert für "tmp" ermitteln
    If (Len(nTempDir) = 0) Then
        nTempDir = Environ$("tmp")    End If
    
    If (Len(nTempDir)) Then
        GetTempPath = nTempDir
        If (AddBackslash) Then            GetTempPath = nTempDir & "\"
        End If
    End If
End Function

Unter Windows gibt es 2 verschiedene Umgebungsvariablen in denen der Pfad des Temp Ordners hinterlegt sein kann. Sie heißen TEMP oder TMP, man kann leider auch nicht davon ausgehen das eine von denen Standardmäßig vorhanden ist. Es kann mal die eine oder die andere vorhanden sein, auch beide sind Möglich.

 

Möglichkeit 2:

Einbinden der API Funktion GetTempPathA bzw. GetTempPathW als GetTempPathAPI aus der Kernel32.dll.

1
2
Private Declare Function GetTempPathAPI Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, _
    ByVal lpBuffer As String) As Long

 

GetTempPath erwartet 2 Parameter

nBufferLength: größe des reservierten Puffers.

lpBuffer: Reservierter Speicher in dem das Ergebnis geschrieben wird.

 

Rückgabewert:

Tatsächliche länge der Zeichenkette.

 

VB Funktion welche GetTempPathAPI aufruft und das Ergebnis als String zurückliefert:

VB Funktion
1
2
3
4
56
7
8
9
1011
12
13
14
Public Function GetTempPath(Optional ByVal AddBackslash As Boolean) As String
Dim strPath As String
Dim strLen As Long
 
strPath = String$(256, 0)strLen = GetTempPathAPI(len(strPath), strPath)
If (strLen > 0) Then
    If (AddBackslash) Then
        GetTempPath = Left$(strPath, strLen)
    Else        GetTempPath = Left$(strPath, strLen - 1)
    End If
End If
End Function

GetTempPath liefert die Pfadangabe in der Kurzfom C:\DOKUME~1\TESTUSER\LOKALE~1\TEMP zurück was nicht unbedingt Wünschenswert ist. Um die Pfadangabe in Langform zu erhalten kann mit der Funktion (hier Link auf Artikel) diesen dann umwandeln.

Downloads

Suchbegriffe

VB6, Visual Basic, Tmp, Temp, Umgebungsvariable

Suche