ショート バージョンまたは DOS 形式 ( 「C:/DOCUME~1」など) のパスがあり、そのフル パス/ロング パス ( 「C:/Documents And Settings」など)を取得したい。
GetLongPathName api を試しました。出来た。しかし、ユニコードファイル名を扱うと失敗します。
Private Declare Function GetLongPathName Lib "kernel32" Alias _
"GetLongPathNameA" (ByVal lpszShortPath As String, _
ByVal lpszLongPath As String, ByVal cchBuffer As Long) As Long
代わりに GetLongPathNameW のエイリアスを作成しようとしましたが、Unicode ファイル名と非 Unicode ファイル名の両方で、常に 0 を返すように見えます。MSDN には、C/C++ の GetLongPathNameW に関する記事しかありません。何か間違ったことをしてもいいですか?
この場合の解決策はありますか?Google と StackOverflow に何時間も費やしていますが、わかりません。
よろしく、