Hallo
Eine praktische Lösung besteht darin, statt MySearchRec.Name auf MySearchRec.FindData.cAlternateFileName zuzugreifen. Dies liefert dir den 8.3 (Dos-kompatiblen) Dateinamen. Dieser enthält garantiert nur
ANSI-Zeichen.
Wenn du den Dateinamen nicht nur intern verwenden, sondern auch anzeigen möchtest, musst du größere Geschütze auffahren. Das Problem ist, dass ein Delphi string (vor Delphi 2009) nun mal eben nur
Ansi-Zeichen und keine
Unicode-Zeichen speichern kann.
Du musst also von Hand die
WinAPI-Funktion FindNextFileW() aufrufen und von dort aus den Dateinamen durchgängig in Variablen vom Typ WideString verarbeiten (statt string).
(Oder auf Delphi 2009 umsteigen
)
Neun