Відповіді:
Максимальна довжина шляху (від MSDN)
В API Windows (за деякими винятками, що обговорюються в наступних параграфах), максимальна довжина шляху - 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, але тепер ми маємо його використовувати, тому ми також повинні використовувати таку максимальну довжину шляху.
Крім того, ви можете ознайомитися з моєю відповіддю в ТА, де пояснюються деякі деталі щодо максимальної довжини шляху.
«Класичний» межа 260 символів: drive letter
+ :\
+ 255 characters of filename
+ \
(або для округлення) + , null terminator
як сказано в інших відповідях
Однак реальний внутрішній ліміт - 32767 символів, який можна досягти, додавши \\?\
для отримання повністю кваліфікований шлях
API Windows має багато функцій, які також мають версії 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