Lange Dateinamen in kurze
Dateinamen umwandeln
[Windows 95/98/NT/2000]

07.10.1998


Auch im Zeitalter, wo die langen Dateinamen herrschen,
    ist es ab und zu erforderlich, diese Dateinamen
    in die noch von DOS-Zeiten bekannten 8.3-Dateiname umzuwandeln.
    Wozu fragen Sie sich jetzt ?
    Das beste Beispiel, das ich nennen kann:

    Der Tipp, der beschreibt, wie man die
Länge einer Wave-Datei ermittelt,
    kann mit langen Dateinamen nur bedingt arbeiten.
    Sollte sich in diesem Dateinamen nur ein einziges Leerzeichen
    befindet, so erhält man kein Ergebnis !

    So, und hier ist die Routine zum Umwandeln:

ERFORDERLICHE OBJEKTE
1 Commandbutton (Command1)

 FORM-CODE
   Private Declare Function GetShortPathName Lib "kernel32" Alias _
      "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal _
      lpszShortPath As String, ByVal lBuffer As Long) As Long
   Private Function GetShortPath(Dateiname As String) As String
      Dim l As Long
      Dim s As String
      s = String$(165, 0)
      l = GetShortPathName(Dateiname, s, 164)
      If l = 0 Then
         GetShortPath = Dateiname
      Else
         GetShortPath = Left$(s, l)
      End If
   End Function
   Private Sub Command1_Click()
      Dim s As String
      s = App.Path
      If Right(s, 1) <> "\" Then s = s & "\"
      s = s & App.EXEName
      s = GetShortPath(s)
      MsgBox s
   End Sub

Download -  2 KB