VB-Homepage Tipp 405

Lange Pfad- und Dateiangaben in 8.3 Konvention umwandeln

Zu Zeiten der Möglichkeit lange Dateinamen und Verzeichnisnamen zu vergeben,
wird es dennoch aus Kompatibilitätsgründen mitunter notwendig sein, die "alten"
Datei- bzw. Verzeichnisnamen in 8.3 Konvention zu ermitteln.
Nicht umsonst gibt es diese API Funktion.

Allgemein/Deklarationen
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Private Const MAX_PATH As Integer = 260

Allgemein/
Function GetShortName(ByVal strLongFileName As String) As String
Dim lngRetVal As Long ' Initialize string

GetShortName = String$(MAX_PATH, 0)
lngRetVal = GetShortPathName(strLongFileName, GetShortName, Len(GetShortName))

'Entfernen anhängeneder Nullen
GetShortName = Left$(GetShortName, lngRetVal)
End Function

Funktionsaufruf

MsgBox GetShortName(Übergeben des Pfad- und Dateinamens)

In unserem Beispiel wird der ermittelte Pfad und Dateiname in 8.3 Konvention nur
über eine Messagebox ausgegeben. Dem Aufruf müssen Sie noch den Pfad zur einer existierenden Quelle übergeben, existiert die nicht, bleibt die Messagebos leer (Dateiexistprüfung mal anders), weswegen ich Ihnen auch keine Vorgabe eingetragen habe.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite