I have a path in short version or in DOS format (“C:/DOCUME~1” e.g) and want to get the full path/long path of it (“C:/Documents And Settings” e.g).
I tried GetLongPathName api. It WORKED. But when deal with unicode filename it turns out failure.
Private Declare Function GetLongPathName Lib "kernel32" Alias _
"GetLongPathNameA" (ByVal lpszShortPath As String, _
ByVal lpszLongPath As String, ByVal cchBuffer As Long) As Long
I tried to alias GetLongPathNameW instead but it seems do nothing, for BOTH Unicode and non-Unicode filename, always return 0. In MSDN there’s only article about GetLongPathNameW for C/C++, not any for VB/VBA. May I do something wrong?
Is there any solution for this case? I spend hours on Google and StackOverflow but can’t find out.
Regards,
Does this work for you? I’ve converted the file path to short path name then converted it back again which gives the correct string even when unicode (eg C:/Tö+)