- Вопрос или проблема
- Автоматически сокращайте и исправляйте пути с помощью моего инструмента path_shortener
- Включите длинные пути (> MAX_PATH 260 символов) в Windows
- Проверьте это в Git Bash, Проводнике и VSCode
- Возможно, еще не работает?
- Ссылки
- Ответ или решение
- Включение длинных путей через реестр:
- Включение длинных путей через PowerShell:
- Учтите, что:
- Заключение
Вопрос или проблема
Мне нужно включить длинные пути, но в моей версии Windows 11 Home нет редактора групповых политик.
Существует ли способ включить это из командной строки или установить редактор групповых политик на моем компьютере?
Правильный способ включить длинные пути в Windows описан здесь
Если вам неудобно редактировать реестр напрямую, вы можете создать следующий .reg файл и запустить его.
Редактор реестра Windows Версия 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"LongPathsEnabled"=dword:00000001
Настоящая проблема 90% времени заключается в том, чтобы заставить приложения поддерживать это, а не в файловой системе. Программисты жестко закодируют MAX_PATH (260 символов) в свой код и делают это на протяжении многих лет.
Это лень в программировании, а не использование кучи Windows для хранения имен путей.
Некоторые приложения написаны достаточно хорошо, чтобы обойти это, но вы найдете больше тех, которые не работают, чем тех, которые работают.
Автоматически сокращайте и исправляйте пути с помощью моего инструмента path_shortener
Обновление: Я написал инструмент для сокращения путей на Python, чтобы наконец решить эту проблему для себя: eRCaGuy_PathShortener. Он автоматически сокращает пути и удаляет недопустимые символы.
Я использую его, чтобы отправлять архивированные налоговые файлы моему налоговому консультанту с моего компьютера на Linux, где мои пути слишком длинные. Мой налоговый консультант использует Windows.
Использование:
# Меню помощи
path_shortener -h
# сократить все пути в директории `test_paths`
path_shortener path/to/test_paths
Пример сокращенных путей:
Исходный путь (379 символов): test_paths_shortened/sun_delta_crash_dog_delta_green_iota_sky/brown_forest/whisper_brown_high_wind_wind/fox_phi_lambda_crash_pi_kappa_fox/dog_ocean_sky_nu_chi_nu_mu_sigma_over_shines/beta_nu_over_psi/pi_<>:"\|?*_blue_nu_trees_mu_green_<>:"\|?*_lambda_over/brown_crash_tau_omega_crash_brown/dog_over_brown_aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccc/h</a
Сокращенный путь (127 символов): test_paths_shortened/sun_d@7732/brown@BCFE/whisp@F3B2/fox_p@29D5/dog_o@C3E1/beta_@3187/pi___@1BA3/brow@ECD9/dog_@8400/h_#01A4/a
Также автоматически создаются “имяфайлы”, которые представляют собой текстовые файлы с окончанием _NAME.txt
и содержат оригинальное имя пути, чтобы вы могли легко видеть, каков был оригинальный путь для всех сокращенных или исправленных файлов и папок.
Приглашаю вас поставить звезду и попробовать его. Это работает отлично.
Оригинальный ответ:
Включите длинные пути (> MAX_PATH
260 символов) в Windows
-
Нажмите Win и введите
powershell
. Щелкните правой кнопкой мыши по “Windows PowerShell” и выберите “Запуск от имени администратора”. Введите свое имя пользователя и пароль для продолжения. -
Запустите эту команду в повышенной консоли PowerShell, чтобы включить длинные пути:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
Вы увидите такой вывод:
LongPathsEnabled : 1 PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control PSChildName : FileSystem PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry
-
Готово. Некоторые программы теперь будут разрешать более длинные пути, если только разработчики программы не включили эту функцию в своем исходном коде и не соблюдают добавление ее в свой “манифест приложения”. См. также: https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell
Проверьте это в Git Bash, Проводнике и VSCode
-
Установите Git для Windows, чтобы получить доступ к терминалу Git Bash. См. мои инструкции здесь: Установка Git для Windows.
-
Запустите это в Git Bash
cd ~ # создать путь более 400 символов mkdir -p thisssssssssssssssssssssssssssssss/isssssssssssssssssssssssssssssssss/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/longggggggggggggggggggggggggg/pathhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh/thatttttttttttttttttttttttttttttttttttttttttttttttttttt/shouldddddddddddddddddddddddddddddddddddddddddddd/workkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk/nowwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
-
Теперь вручную перейдите туда в Проводнике, щелкните правой кнопкой мыши и выберите “Создать” -> “Текстовый документ”. И посмотрите, сможете ли вы создать и открыть его, редактировать, сохранить и т. д.
Примечание: Я открываю и редактирую его в MS VS Code.
-
Это работает у меня. Готово. Замечательно!
Возможно, еще не работает?
Обновление Авг. 2024:
Когда я вручную перехожу к действительно длинному пути выше в Проводнике, щелкаю правой кнопкой мыши и выбираю “Создать” -> “Папка” (то есть создаю папку, а не файл), я вижу эту ошибку в всплывающем окне:
Слишком длинный путь назначения
Имя файла(ов) будет слишком длинным для папки назначения. Вы можете сократить имя файла и попробовать снова или попробовать расположение с более коротким путем.
не сработало. Я не знаю, что об этом думать…
Обновление 4 Окт. 2024: кажется, что даже если вы исправляете это в реестре, отдельные программы все равно жестко закодированы, чтобы блокировать вас на основе старого максимального значения длины пути. Нет решения, кроме как ждать обновления этих программ, что может занять десятилетия. Это включает Проводник Windows и инструменты разархивирования. Поэтому я написал эту программу, чтобы решить свою проблему, автоматически сокращая пути для себя: https://github.com/ElectricRCAircraftGuy/eRCaGuy_PathShortener
Основной ответ от Сеньора CMasMas также указывает на эту проблему:
Настоящая проблема 90% времени заключается в том, чтобы заставить приложения поддерживать это, а не в файловой системе. Программисты жестко закодируют MAX_PATH (260 символов) в свой код и делают это на протяжении многих лет.
Это лень в программировании, а не использование кучи Windows для хранения имен путей.
Некоторые приложения написаны достаточно хорошо, чтобы обойти это, но вы найдете больше тех, которые не работают, чем тех, которые работают.
Удачи! 🙂
Ссылки
Это связано с тем, что Проводник не поддерживает длинные имена файлов. Ни в Windows 10, ни в Windows 11.
Хотя обе операционные системы поддерживают длинные пути.
Если вы хотите обойти это, подключите диск напрямую к папке. Этот UNC путь через смонтированный диск обходит длинный путь, позволяя вам добавлять файлы и папки.
Ответ или решение
Чтобы включить поддержку длинных путей в Windows 11 Home, выполните следующие шаги. Эта версия Windows не имеет редактора групповых политик (Group Policy Editor), но проделать необходимые изменения можно через реестр или командную строку.
Включение длинных путей через реестр:
-
Создание .reg файла:
Если вы не уверены в том, как редактировать реестр вручную, вы можете создать файл реестра. Откройте текстовый редактор (например, Блокнот) и вставьте следующий код:Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] "LongPathsEnabled"=dword:00000001
Сохраните этот файл с расширением
.reg
, напримерenable_long_paths.reg
. -
Запуск .reg файла:
Дважды щелкните на созданный файл и согласитесь с изменениями в реестре. Вам может понадобиться предоставить права администратора для выполнения этой операции.
Включение длинных путей через PowerShell:
-
Открытие PowerShell:
Нажмите клавишуWin
, введитеpowershell
, щелкните правой кнопкой мыши на "Windows PowerShell" и выберите "Запуск от имени администратора". Подтвердите действия, если потребуется. -
Выполнение команды:
В открывшемся окне PowerShell введите следующую команду и нажмитеEnter
:New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
Если команда выполнится успешно, вы получите подтверждение, что свойство
LongPathsEnabled
установлено в1
.
Учтите, что:
Включение поддержки длинных путей в файловой системе Windows не гарантирует, что все приложения будут работать с длинными путями. Многие программы были написаны с ограничением на длину пути, и это ограничение не может быть исправлено без обновления самого приложения.
Если после выполнения действий вы все еще сталкиваетесь с проблемами, вы можете использовать такие решения, как:
-
Создание символических ссылок или использование UNC-путей: Например, если у вас есть длинный путь, вы можете создать символическую ссылку, которая ссылается на него, или использовать специальные инструменты для доступа к данным без необходимости длинного пути.
-
Использование сторонних инструментов для сокращения путей: Вам могут помочь приложения или скрипты, которые автоматически сокращают пути к файлам и папкам.
Заключение
Работа с длинными путями в Windows 11 Home возможна, но эффективность зависит от используемых вами приложений. Убедитесь, что они поддерживают новые методы работы с файлами и путями. Если данное решение не сработает из-за ограничений программного обеспечения, рассмотрите возможность использования предложенных методов обхода.