Итак, мы все знаем, что программы Windows по умолчанию ограничены длиной до 260 символов.Однако этот предел можно легко преодолеть, добавив префикс пути к последовательности символов \\?\
.
Однако по некоторым причинам это невозможно с относительными путями, как говорится в MSDN:
Поскольку вы не можете использовать префикс \\?\
с относительным путем, относительные пути всегда ограничиваются общим количеством MAX_PATH
символов.
( источник )
Я не совсем понимаю причину, по которой Microsoft решила запретить относительные пути с префиксом \\?\
, поэтому, если за этим решением есть какое-то обоснование, я был бы очень рад услышать об этомпотому что для меня не имеет смысла, что \\?\
разрешен только для полных путей.
Мой настоящий вопрос, однако, заключается в том, как справиться с этим ограничением: я должен просто вызвать GetFullPathName()
относительнопути для расширения их до полных путей, затем добавьте префикс \\?\
, а затем передайте этот путь к fopen()
и т. д., или каков рекомендуемый способ устранения этого ограничения?