Ermitteln Sie den vollständigen Pfad mit dem Unicode-Dateinamen

Ich habe einen Pfad in Kurzversion oder im DOS-Format (C: / DOKUMENT ~ 1 z. B.) und möchten den vollständigen Pfad / langen Pfad davon erhalten ("C: / Dokumente und Einstellungen" z.B).

Ich habe versucht, GetLongPathName api. Es funktionierte. Beim Umgang mit Unicode-Dateinamen kommt es jedoch zu einem Fehler.

Private Declare Function GetLongPathName Lib "kernel32" Alias _
    "GetLongPathNameA" (ByVal lpszShortPath As String, _
    ByVal lpszLongPath As String, ByVal cchBuffer As Long) As Long

Ich habe versucht, stattdessen den Alias ​​"GetLongPathNameW" zu verwenden, aber es scheint, als würde nichts dagegen unternommen. Für Unicode- und Nicht-Unicode-Dateinamen wird immer 0 zurückgegeben. Darf ich etwas falsch machen?

Gibt es eine Lösung für diesen Fall? Ich verbringe Stunden mit Google und StackOverflow, kann es aber nicht herausfinden.

Grüße,

Antworten auf die Frage(2)

Ihre Antwort auf die Frage