Альтернатива для API fullpath для Windows, который может содержать путь более 255 символов! - PullRequest
1 голос
/ 05 января 2010

_fullpath API окон принимает относительный путь и дает соответствующий абсолютный путь. Но он не работает, если относительный путь превышает 255 символов.

Есть ли какой-либо другой API, доступный в Windows, который может преобразовать относительный путь в абсолютный путь и не имеет проблемы, упомянутой выше?

Ответы [ 2 ]

2 голосов
/ 05 января 2010

Я думаю, что ближайшим эквивалентом была бы функция GetFullPathName . Вы можете явно вызвать его версию Unicode и добавить \\?\ к пути, чтобы разрешить более MAX_PATH символов.

1 голос
/ 05 января 2010

Я думаю, что это ограничение конкретной версии ОС. Посмотрите эту статью на MSDN.

Для решения проблем, когда каталог структура превышает MAX_PATH, используйте либо из следующих методов:

На сервере, который содержит длинную структуру каталогов, доступ к этим файлы и папки через локальный перенаправление («net use» или «subst») тот же общий ресурс / папка, что и сеть клиенты получают доступ через сеть.

В Windows NT Explorer выберите папку на один уровень выше папки это возвращает ошибку. Щелкните правой кнопкой мыши папка, возвращающая ошибку и затем нажмите Переименовать. Переименовать папку уменьшить количество символов используется в имени папки.

Прочитайте эту страницу MSDN, а также ограничения максимальной длины пути.

Еще одно интересное чтение в Joel on Software Discussion Group.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...