У меня сложилось впечатление, что если бы у меня был такой путь UNC:
\\SRVR-A\Home\UserA\Documents\TestFolder
и я хотел его расширить прошел ограничение MAX_PATH, я мог бы сделать это:
\\?\UNC\SRVR-A\Home\UserA\Documents\TestFolder
Но когда я запускаю следующее в Windows XP, происходит сбой с кодом ошибки ERROR_INVALID_NAME
:
TCHAR buffDummy;
DWORD dwNeededLn = ::GetLongPathName(
L"\\\\?\\UNC\\SRVR-A\\Home\UserA\\Documents\\TestFolder",
&buffDummy, 0);
if(dwNeededLn == 0)
{
//Error
int nErrorCode = ::GetLastError();
}
Я что-то упускаю?
PS. Эта папка существует, и API работает нормально, если вместо этого я делаю \\SRVR-A\Home\UserA\Documents\TestFolder
.
GetLongPathName
является перевод короткого имени, например.c:\progra~2\MICROS~2.0
в длинное имя, например.C:\Program Files\Microsoft Visual Studio 10
. Так что я не понимаю, каковы ваши намерения здесь... - person user1793036   schedule 06.06.2014GetLongPathName
или у вас также есть проблемы с другими функциями API, такими какCreateFile
? Работает ли это на более поздних версиях Windows? (Может быть, это просто ошибка...) - person Harry Johnston   schedule 06.06.2014