Каков самый длинный путь к файлу, который может обработать Windows?
Каков самый длинный путь к файлу, который может обработать Windows?
Ответы:
Максимальная длина пути (от MSDN)
В Windows API (с некоторыми исключениями, обсуждаемыми в следующих параграфах), максимальная длина пути равна MAX_PATH, которая определяется как 260 символов . Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты, разделенные обратной косой чертой, и завершающий нулевой символ. Например, максимальный путь на диске D равен «D: \ <строка пути длиной около 256 символов> <NUL>», где «<NUL>» представляет невидимый завершающий нулевой символ для текущей системной кодовой страницы. (Символы <> используются здесь для наглядности и не могут быть частью допустимой строки пути.)
Путь к файлу XP - 250 символов
Путь к файлу Vista - 260 символов
Самый длинный путь при чистой установке Windows XP составляет 152 символа.
Самый длинный путь в полуочищенной установке Windows Vista составляет 195 символов:
Windows XP допускает имена файлов длиной до 255 символов
Windows Vista допускает даже более длинные имена файлов, содержащие до 260 символов.
Константа Windows MAX_PATH
равна 260, как говорят другие ответы, однако самый длинный путь - 32767.
Смотрите здесь .
32k - это использование UNICODE, но теперь мы должны его использовать, поэтому мы должны также использовать такую максимальную длину пути.
Кроме того, вы можете посмотреть на мой ответ в SO, который объясняет некоторые вещи более подробно о максимальной длине пути.
«Классический» предел 260 символов: drive letter
+ :\
+ 255 characters of filename
+ \
(или для округления) + , null terminator
как сказано в других ответах
Однако реальный внутренний предел 32767 символов , которые могут быть достигнуты путем добавления , \\?\
чтобы получить полный путь
Windows API имеет много функций, которые также имеют версии Unicode, чтобы разрешить путь расширенной длины для максимальной общей длины пути 32 767 символов. Этот тип пути состоит из компонентов, разделенных обратной косой чертой, каждая из которых соответствует значению, возвращенному в
lpMaximumComponentLength
параметреGetVolumeInformation
функции (обычно это значение составляет 255 символов). Чтобы указать путь расширенной длины, используйте"\\?\"
префикс. Например,"\\?\D:\very long path"
.
Если по каким-либо причинам полные пути не могут быть использованы, то к более глубоким каталогам можно обратиться, подключив их к букве диска с помощью subst
/ diskpart
или создав соединение / символическую ссылку для сокращения пути
Начиная с Windows 10, MAX_PATH
ограничение также было удалено, хотя не по умолчанию
Начиная с Windows 10, версия 1607,
MAX_PATH
ограничения были удалены из общих функций файлов и каталогов Win32. Тем не менее, вы должны подписаться на новое поведение.https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file