Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Лёгкое удаление папок со слишком длинными путями в Windows (https://javascript.ru/forum/misc/69617-ljogkoe-udalenie-papok-so-slishkom-dlinnymi-putyami-v-windows.html)

Sigizmund2012 06.07.2017 13:12

Лёгкое удаление папок со слишком длинными путями в Windows
 
Многие сталкиваются с проблемой невозможности удаления файлов и папок со слишком длинным путём до них в файловой системе на базе Windows. Если путь слишком длинный( больше 256 символов ), при попытке удаления файла или папки, Windows выдаёт ошибку «Файловая система не поддерживает такие длинные имена исходных файлов», это не исправлено даже в 10-й версии операционной системы. Если поискать ответ в Интернете, наиболее распространённым окажется ручное переименование папок на более короткие, но я нашёл более эффективное решение, которое, правда, требует установки Node.js на ваш компьютер.

Столкнулся я с данной проблемой, когда попробовал удалить папку node_modules из очередного проекта и получил эту ошибку. Вложенность папки оказалось такой, что переименовывание каталогов заняло около получаса. Я, как и большинство программистов, довольно ленив, и повторения не хотелось. Начал искать решение и нашёл, оно подойдёт не только тем, кто знаком с Node.js и NPM, но и вполне по силам опытному пользователю Windows. Итак, начнём.
  1. Устанавливаем Node.js
  2. Устанавливаем глобально npm пакет rimraf ( открываем cmd.exe, git bash или другую оболочку для терминала Windows и вводим npm install rimraf -g и ждём установки модуля. )
  3. В том же терминале вводим rimraf "Путь\до\папки\которую\надо\ удалить"
  4. ?????
  5. PROFIT
Работает, проверено мной не раз, пример команды в терминале: rimraf "E:\project\node_modules"
Источник

laimas 06.07.2017 13:49

Цитата:

Сообщение от Sigizmund2012
Устанавливаем Node.js

Зачем? Можно получить короткое имя файла 8.3 и спокойно удалить, и самих системных библиотек в Windows предостаточно (собственно Node.js и будет их использовать) для решения этой проблемы. А как языка достаточно и VBS.

Sigizmund2012 06.07.2017 13:56

Цитата:

Сообщение от laimas (Сообщение 457747)
Зачем? Можно получить короткое имя файла 8.3 и спокойно удалить, и самих системных библиотек в Windows предостаточно (собственно Node.js и будет их использовать) для решения этой проблемы. А как языка достаточно и VBS.

Это метод, который я сам нашёл после долгого гугления и пробования разных путей удаления таких папок, для меня он оказался самым простым. Если знаете более простой и эффективный способ, напишите здесь, будет интересно.

laimas 06.07.2017 14:10

Цитата:

Сообщение от Sigizmund2012
Если знаете более простой и эффективный способ, напишите здесь

В общем-то эта проблема известна, но я с ней еще не сталкивался, сам такого не допускаю, а иных ПО так гадящих пока не встречал у себя. Но то, что без системных библиотек не решить проблемы, а кроме VBS на Win есть и .NET, поэтому написать скрипт решающий эту задачу можно без инсталляции чего-то стороннего, это гарантия. Могу даже заключить пари, что если хорошо поискать, то скрипт использующий или VBS, или .NET решения этой задачи в сети есть.

Sigizmund2012 30.07.2017 12:49

Update: Нашёл ещё один вариант для пользователей Windows 10. При включении подсистемы Linux( Ubuntu ) в Windows 10 становится доступной линуксовская консоль со всеми её командами. Инструкция на Хабре Читаем комментарии, у кого русская Винда, и он не может найти нужные разделы в панели управления.
После установки открываем cmd.exe на родительской папке( левый Shift + ПКМ на папке -> Открыть окно PowerShell здесь ), вводим bash, появляется консоль Ubuntu, в ней вводим rm -rf папка-для-удаления Усё, папка удалена. Пример команды: rm -rf node_modules


Часовой пояс GMT +3, время: 06:22.