Comments 22
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"LongPathsEnabled"=dword:00000001
Единственным аргументом против этого безумия до сих пор оставались технические ограничения винды.
Если кто-то нарушает принятые в организации принципы именования папок и документов, подкиньте ему зацикленную символическую ссылку в качестве наказания.
Хочу по полемизировать с вашим комментарием, несмотря на то, что прошло уже 3 года.
Привычку запихивать в имена файлов и каталогов спецсимволы и ненужную информацию культивировал сам Микрософт. Для этого у него есть как минимум 2 папки с названиями Program Files и Program Files (x86), куда по умолчанию устанавливаются все программы.
1) при скачивании торнетов
2) при сохранении веб страниц
Может через пару лет проблему путей решат окончательно.
Сталкивался этим при создании проекта ASP.NET Core — bower скачивает frontend-зависимости и пихает их в такое количество вложенных папок, что проводник Windows потом отказывается удалить папку с этим проектом.
\?\d:\Programming_WEB\xxxxxx\xxxxxx_old\xxxxxx\src\xxxxx\node_modules\grunt-contrib-less\node_modules\less\node_modules\request\node_modules\har-validator\node_modules\is-my-json-valid\node_modules\generate-object-property\node_modules\is_property...
Альтернативный способ — с помощью subst создать виртуальный диск, указывающий на папку, не лежащую в корне.
Надо же параметр ЛГП "Включить длинные пути Win32" заработал. Проверял несколько лет назад, проводник тупо его игнорировал.
Я немного ошибся. Да, теперь проводник в состоянии создать длинный путь и с ним работать, но всё равно это как-то криво реализовано. Далее, примеры с запуском различных файлов расположенных в пути, длина которого превышает 300 символов, с помощью проводника в Win10 x64 Pro 20H2, сборка ОС 19042.1110. Например, если я запускаю файл ассоциированный с Блокнотом (или выбираю «Открыть с помощью»), то проблем нет, файл исправно открывается. А вот, если попытаться открыть PNG-файл в Paint, то ничего не происходит, никаких сообщений, просто игнорирование события. Самим Paint’ом можно войти в папку и выбрать файл, но открывать его он не будет, без каких либо сообщений. Похожая ситуация при попытке открыть HTML-файл в браузере Edge или FireFox. Но, оказалось, что, если самим FireFox зайти в папку то файл исправно открывается (как то же самое сделать в Edge я так и не понял). Notepad++ отказывается работать с таким путём. Им самим можно туда зайти и выбрать файл, но он его не откроет без каких либо сообщений. Если попытаться открыть файл ассоциированный с LibreOffice Writer, то ничего не происходит, а вот он сам его исправно открывает. В общем, не всегда понятно, кто виноват в невозможности открыть файл в программе, проводник, другие части ОС или сама программа? Что тут скажешь, MS во всей красе.
Выбираем длинный путь (или прощай MAX_PATH)