Доступ к файлам в сети Windows с длиной, близкой к MAX_PATH

StackOverflow https://stackoverflow.com/questions/112946

Вопрос

Я использую C++ и получаю доступ к UNC-пути в сети.Этот путь немного больше, чем MAX_PATH.Поэтому я не могу получить дескриптор файла.

Но если я запущу программу на рассматриваемом компьютере, путь не будет больше MAX_PATH.Итак, я могу получить дескриптор файла.Если я переименую файл, чтобы в нем было меньше символов (за вычетом длины имени компьютера), я смогу получить доступ к файлу.

Можно ли получить доступ к этому файлу по сети, даже зная, что имя компьютера в пути UNC превышает предел MAX_PATH?

Это было полезно?

Решение

Я помню, что есть какая-то функция, например, использование \\?\ в начале пути, чтобы обойти MAX_PATH предел.Вот ссылка на MSDN:

http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Для удаленных компьютеров вы должны использовать имя пути, например: \\?\unc\server\share\path\file\\?\unc\ является специальным префиксом и не используется как часть фактического имени файла.

Другие советы

Возможно, вам удастся получить дескриптор файла, если вы попытаетесь открыть файл после преобразования имени файла в короткое (8.3) имя файла.В противном случае вы можете сопоставить каталог, в котором находится файл, как диск и получить доступ к файлу таким образом?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top