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. |