Du darfst den UnicodeStriong/WideString nicht "einfach" nach
ANSI umewandeln.
Alles was nicht umgewandelt werden kann, wird automatisch in ein "?" übersetzt. (
WideCharToMultiBye mit '?' als Ersetzungszeichen)
Du mußt schon über die Dateisystem-APIs den Pfad übersetzen lassen.
GetShortPathName oder
ExtractShortPathName
Ob du das dann als
ANSI oder
Unicode (welches hier scheinbar intern nach
ANSI umgewandelt wird) weitergibst, ist egal, da die kurzen Dateinamen eh nur
ASCII benutzen.
Wenn es intern mit wirklich auch UTF-8 arbeiten kann, dann wirst du wohl ebenfalls selber nach UTF-8 übersetzen müssen.
Mußt dann nur zusehn, daß dabei irgendwo ein WideString dazwischenkommt, welcher die UFT-8-Kodierung zerstören könnte.