К сожалению, ответ « зависит от программы ». Люди, которые пишут программы, должны определить, какой метод они хотят использовать. Фактически, (бесстыдный плагин), я написал запись в блоге несколько недель назад, описывающую проблему вИсследователь все еще ограничен MAX_PATH.
В зависимости от того, что вы пытаетесь сделать, вы можете использовать другую программу для управления длинными путями, например Microsoft Word. В противном случае, ваш единственный вариант - просто «жить с этим», так как он был таким всегда и, похоже, не изменится в ближайшее время.
Просто подумал, я бы также упомянул, что 64-битная Windows также использует API-интерфейс Win32, и CreateFileA
для 32-битных и 64-битных программ есть проблема.
РЕДАКТИРОВАТЬ: Geeky Подробности
Проблема существует только в CreateFileA
функции и CreateFileW
функции, когда используется абсолютный путь с буквой диска. Единственный способ обойти это (в коде) - использовать \\?\C:\Path\To\File.txt
синтаксис ... так что даже программы, использующие CreateFileW
путь, C:\Path\To\File.txt
имеют проблему. Это сложно описать, но само собой разумеется, что главная причина того, что программы не поддерживают \\?\
синтаксис, заключается в том, что они теряют способность использовать относительные пути (например, пути ..\Documents\file.doc
).