Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2017, 13:12
Аватар для Sigizmund2012
Профессор
Отправить личное сообщение для Sigizmund2012 Посмотреть профиль Найти все сообщения от Sigizmund2012
 
Регистрация: 16.07.2014
Сообщений: 267

Лёгкое удаление папок со слишком длинными путями в 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"
Источник
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2017, 13:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Sigizmund2012
Устанавливаем Node.js
Зачем? Можно получить короткое имя файла 8.3 и спокойно удалить, и самих системных библиотек в Windows предостаточно (собственно Node.js и будет их использовать) для решения этой проблемы. А как языка достаточно и VBS.
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2017, 13:56
Аватар для Sigizmund2012
Профессор
Отправить личное сообщение для Sigizmund2012 Посмотреть профиль Найти все сообщения от Sigizmund2012
 
Регистрация: 16.07.2014
Сообщений: 267

Сообщение от laimas Посмотреть сообщение
Зачем? Можно получить короткое имя файла 8.3 и спокойно удалить, и самих системных библиотек в Windows предостаточно (собственно Node.js и будет их использовать) для решения этой проблемы. А как языка достаточно и VBS.
Это метод, который я сам нашёл после долгого гугления и пробования разных путей удаления таких папок, для меня он оказался самым простым. Если знаете более простой и эффективный способ, напишите здесь, будет интересно.
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2017, 14:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

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

Последний раз редактировалось laimas, 06.07.2017 в 14:13.
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2017, 12:49
Аватар для Sigizmund2012
Профессор
Отправить личное сообщение для Sigizmund2012 Посмотреть профиль Найти все сообщения от Sigizmund2012
 
Регистрация: 16.07.2014
Сообщений: 267

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP удаление папок по времени Sonya Работа 18 29.12.2016 22:44
Adobe Acrobat Reader 9 Pro cheap order online Rodivazzio Элементы интерфейса 0 04.07.2009 02:55