В Windows общая длина пути по умолчанию не должна превышать 260 символов (drive
+ :\
+ 255 characters of filename
+ null terminator
+, вероятно, для конечного \
в случае, если путь является каталогом или просто для равномерного округления). Это был пережиток эпохи DOS с 8.3 именами, когда путь из 260 символов - это действительно глубокий путь.
Возможно, ваш путь к папке был уже очень длинным, поэтому оставшаяся часть для вашего имени файла - всего 129. Если вы хотите более длинный путь, у вас есть несколько решений:
- использовать полные имена файлов с
\\?\
префикс, таким образом, вы можете использовать максимум 32767 символов в пути ‡
- переименуйте папки в пути, чтобы сделать его короче
- смонтировать папку , содержащую файл в приводном символ с
subst
/mountvol
/diskmgmt.msc. Таким образом, вы можете использовать максимум 255 символов для вашего имени файла
- создайте перекрестную/символическую ссылку на другую более мелкую папку на пути. Вы не можете создавать ссылки на буквы дисков, следовательно, вы не можете получить имена файлов, если используете метод монтирования
Начиная с Windows 10 , есть еще один вариант , путем удаления MAX_PATH ограничения §. Вы можете включить его, установив HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled
в реестре или выбрав Конфигурация компьютера> Административные шаблоны> Система> Файловая система> Включить длинные пути NTFS в групповой политике.
Прочитайте больше:
‡ Максимальный путь в 32 767 символов является приблизительным, потому что \\?\
может быть расширен системой до более длинной строки во время выполнения, и это расширение применяется к общей длине.
§ Начиная с Windows 10 версии 1607 ограничения MAX_PATH
были удалены из общих функций файлов и каталогов Win32. Тем не менее, вы должны подписаться на новое поведение.