Wozu muß es denn unbedingt der Lange sein?
Den Kurzen kann man ja genau so gut verwenden.
Tipp: Du hast die Quellcodes, bzw. du kannst deinen Debugger nutzen, um nachzusehn was sich in
ExtractShortPathName versteckt.
Und mit diesem
GetShortPathName geht man nun zum
MSDN und schaut sich an, was da verlinkt ist, womit sich als Umkehrfunktion
GetLongPathName ergibt.
Als Tipp für die Anderen:
TPath.GetTempPath ... dort ist schon GetLongPathName fertig verbaut und dort ist ebenfalls der andere Code für Linux/Mac mit drin.