2008-09-22 2 views
3

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

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

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

ответ

10

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

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

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

+0

Я использую это для локальных путей, но не уверен, что/как это применимо к удаленным компьютерам. – 2008-09-22 03:06:07

0

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

Смежные вопросы