Компьютеры · Инструкция
Windows 11: как включить длинные пути Win32
Поддержка длинных путей в Windows не снимает MAX_PATH для всех программ одной настройкой.
Короткий ответ
В Windows 11 25H2+ длинные пути включаются через Advanced Settings; на других версиях — политикой или LongPathsEnabled. Нужен longPathAware.
Откуда берётся ограничение MAX_PATH
Многие классические Win32 API исторически работали с константой MAX_PATH, из-за чего полный путь к файлу обычно ограничивался примерно 260 символами. Проблема проявляется не в длине имени одного файла, а в сумме: буква диска, каталоги, обратные слэши, имя файла и служебный завершающий символ. Современный NTFS способен хранить гораздо более длинные пути, поэтому файловая система и приложение здесь не одно и то же. Microsoft добавила возможность отказаться от MAX_PATH для поддерживающих приложений, но оставила совместимость со старым ПО, чтобы системный переключатель не ломал его неожиданно.
Важно: Не переименовывайте системные каталоги и не применяйте сомнительные «патчи explorer.exe». Официальный механизм — системная политика плюс поддержка приложения.
Как включить длинные пути в Windows 11
- Если у вас Windows 11 25H2 или новее, откройте «Параметры» → «Система» → «Дополнительно» (Advanced) и включите Enable long paths.
- На более ранних поддерживаемых версиях откройте локальную групповую политику: Computer Configuration → Administrative Templates → System → Filesystem → Enable Win32 long paths, если редактор политик доступен.
- Альтернатива — реестр HKLM\SYSTEM\CurrentControlSet\Control\FileSystem: параметр LongPathsEnabled типа DWORD должен иметь значение 1.
- Полностью закройте проблемное приложение и запустите его снова. Microsoft предупреждает, что значение может кэшироваться процессом; при необходимости перезагрузите Windows.
- Повторите операцию в том же каталоге. Если ошибка остаётся только в одной программе, проверьте её поддержку longPathAware.
Совет: После изменения полностью перезапустите проблемную программу. Значение реестра может кэшироваться процессом, поэтому простой повтор операции в том же процессе иногда вводит в заблуждение.
Три способа включения и когда какой использовать
- Advanced Settings. Windows 11 25H2+. графический системный переключатель без ручного редактирования
- Групповая политика. редакции/среды с управлением политиками. удобно централизованно задавать Enable Win32 long paths
- Реестр. Windows 10 1607+ и Windows 11. прямое значение LongPathsEnabled=1, но требует аккуратного изменения HKLM
Совет: В организации предпочтительнее управляемая политика, а не ручное изменение реестра на десятках компьютеров.
Почему LongPathsEnabled=1 иногда ничего не меняет
Microsoft описывает два условия для классического Win32-приложения. Во-первых, системное значение LongPathsEnabled должно разрешать длинные пути. Во-вторых, само приложение должно иметь в манифесте элемент `longPathAware` со значением true и использовать подходящие API. Если выполнено только первое условие, старый бинарник может продолжить проверять MAX_PATH самостоятельно или вызывать функции с прежними ограничениями. Это объясняет типичную ситуацию: Git или современный инструмент работает, а старый архиватор или установщик всё ещё сообщает, что имя слишком длинное.
Групповая политика и реестр: что именно меняется
Политика Enable Win32 long paths управляет системным разрешением длинных путей. Эквивалентное значение реестра находится в `HKLM\SYSTEM\CurrentControlSet\Control\FileSystem` и называется `LongPathsEnabled`; значение DWORD 1 включает механизм. Изменять реестр стоит только если интерфейс или политика не подходят вашему сценарию, причём сначала полезно экспортировать изменяемый раздел или хотя бы записать исходное значение. Не создавайте несколько «оптимизирующих» ключей из старых инструкций: для этого интента достаточно документированного параметра Microsoft.
Предупреждение: Ошибка в HKLM затрагивает систему шире одной программы. Если есть графический переключатель или политика, они обычно предпочтительнее ручного редактирования.
Если «путь слишком длинный» остался после включения
- полностью перезапустите приложение, а при сомнении — компьютер;
- проверьте, что LongPathsEnabled действительно равен 1 или политика включена;
- убедитесь, что ошибка возникает в той же программе, а не во вложенном старом инструменте или установщике;
- проверьте поддержку longPathAware у приложения;
- для временного обхода сократите базовый путь проекта: например, `C:\src` вместо глубокой цепочки папок профиля;
- не путайте ограничение полного пути с ограничениями конкретной файловой системы, сетевого сервиса или формата архива.
Почему короткий базовый путь всё равно остаётся полезным
Даже когда Windows и основное приложение longPathAware, проект может вызывать сторонние утилиты, плагины, архиваторы или старые build-tools, которые всё ещё живут с MAX_PATH. Поэтому для Node.js, C++ или больших монорепозиториев практично держать рабочую папку ближе к корню диска. Это не отменяет системную настройку, а снижает вероятность столкнуться с самым слабым звеном цепочки. Если проект переносится между Windows, Linux и CI, короткие предсказуемые пути также упрощают скрипты. В результате лучшая стратегия — включить официальный механизм и одновременно не создавать избыточно глубокую структуру без необходимости.
Почему после включения ошибка может остаться в одной программе
Системная настройка — только половина условия. Microsoft требует, чтобы приложение само объявляло поддержку длинных путей через `longPathAware` в манифесте. Поэтому Проводник, архиватор, старая бухгалтерская программа и современный инструмент разработчика могут вести себя по-разному на одном компьютере. Если ошибка осталась, проверьте её в другом приложении на том же файле: это быстро отделяет системную проблему от ограничения конкретной программы. Для инструментов командной строки также важна версия среды и библиотек, через которые они обращаются к файловой системе. Не пытайтесь лечить такой случай бесконечным редактированием реестра — повторная запись того же `LongPathsEnabled=1` не добавит приложению отсутствующий `longPathAware`. Иногда помогает только обновление программы или сокращение базового пути проекта.
Как выбрать между Advanced Settings, политикой и реестром
На Windows 11 25H2 и новее удобнее начать с графического переключателя Advanced Settings: он показывает поддерживаемый системный способ без ручного ввода значения. В управляемой среде предпочтительнее групповая политика `Enable Win32 long paths`, потому что её можно централизованно контролировать. Реестр остаётся техническим эквивалентом для сценариев, где GUI или политика недоступны: параметр `LongPathsEnabled` типа DWORD находится в `HKLM\SYSTEM\CurrentControlSet\Control\FileSystem` и устанавливается в `1`. Microsoft отмечает, что значение может кэшироваться процессом, поэтому проблемное приложение нужно полностью перезапустить; для уже запущенных системных процессов иногда помогает перезагрузка. Даже после этого разумно держать рабочие каталоги короче: внешние архиваторы, старые плагины и инструменты CI могут иметь собственные ограничения независимо от Windows. Если ошибка возникает в архиве, сборочном инструменте или старом приложении, ищите документацию именно этого компонента. Системная поддержка длинных путей не гарантирует, что сторонняя библиотека внутри программы сняла собственный лимит, поэтому короткий рабочий путь остаётся практичным запасным решением.
Практический контроль результата
Есть и сетевой аспект: длинный путь может проходить через SMB, архив, облачную синхронизацию или приложение, которое накладывает собственный лимит раньше Windows. Поэтому успешный тест на локальном NTFS не гарантирует такой же результат при копировании на NAS или распаковке старой утилитой. Диагностируйте по этапам: создание локального файла, работа основного приложения, упаковка, синхронизация, перенос на целевую систему. Так можно определить компонент, который фактически ограничивает путь, вместо бессмысленного повторного изменения LongPathsEnabled.
Что учитывать
Многие классические Win32 API исторически работали с константой MAX_PATH, из-за чего полный путь к файлу обычно ограничивался примерно 260 символами. Проблема проявляется не в длине имени одного файла, а в сумме: буква диска, каталоги, обратные слэши, имя файла и служебный завершающий символ. Современный NTFS способен хранить гораздо более длинные пути, поэтому файловая система и приложение здесь не одно и то же. Microsoft добавила возможность отказаться от MAX_PATH для поддерживающих…
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Advanced Windows Settings). Пример и формулировки — редакция N1RO на 2026-09-20.