Code-Beispiel
Lange Dateinamen zu DOS 8.3 Namen umwandeln
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | Sebastian | 23.02.2008 |
WinAPI-Funktionen, aber auch DOS-Anwendungen usw. erwarten häufig einen Pfad zu einer Datei im sog. 8.3 Namensformat. Das bedeutet, dass der Dateiname nur 8 Zeichen plus Punkt + 3 Zeichen für die Endung lang sein darf. Der lange Pfad C:\Programme ergibt beispielsweise auf den meisten Systemen C:\Progra~1. Da man sich darauf jedoch nicht verlassen kann, dass dies immer der Fall ist, verwendet man die folgende WinAPI-Funktion, um einen kurzen Dateinamen zu erhalten:
'Getestet mit FB 0.18 für Windows, CVS (18.05.2007)
#include "windows.bi"
Dim Ergebnis As Integer
Dim PufferLaenge As Integer
Dim LangerPfadPtr As ZString Ptr
Dim KurzerPfadPtr As ZString Ptr
Dim KurzerPfad As String
PufferLaenge = 255
LangerPfadPtr = Allocate(PufferLaenge)
KurzerPfadPtr = Allocate(PufferLaenge)
*LangerPfadPtr = "C:\Programme"
Ergebnis = GetShortPathName(LangerPfadPtr, KurzerPfadPtr, PufferLaenge)
KurzerPfad = *KurzerPfadPtr
Deallocate (LangerPfadPtr)
Deallocate (KurzerPfadPtr)
PRINT "Kurzer Pfad: "; CHR(34); Trim(KurzerPfad); CHR(34)
SLEEP: END
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|