Получить полный путь с именем файла Unicode

У меня есть путь в сокращенной версии или в формате DOS("C :/DOCUME ~1" например )и хотите получить полный путь/длинный путь(«C :/Документы и настройки» например ).

Я попробовал API GetLongPathName. Это сработало. Но когда имеешь дело с юникодным именем файла, получается сбой.

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 есть только статья о GetLongPathNameW для C/C++, а не для VB/VBA. Могу ли я сделать что-то не так?

Есть ли решение для этого случая? Я провожу часы в Google и StackOverflow, но не могу найти.

С уважением,

5
задан Shinigamae 9 July 2012 в 04:25
поделиться