Как удалить каталоги с путями / именами слишком долго для обычного удаления

При попытке удалить Windows, похоже, имеет ограничение длины на имена файлов, хотя это не будет препятствовать созданию этих файлов.

Наш процесс сборки создает несколько временных файлов (многие из них строятся из WSDL), которые преследуют этот предел. Наш скрипт ant каким-то образом удаляет их при чистке, но иногда мне нужно удалить каталог workarea (где все временные файлы идут) без фактического полного удаления от муравья.

  • Скопировать полный путь к файлу в Windows XP
  • Список всех скрытых папок / файлов в Windows (7)?
  • Разрешения для файлов в Windows XP
  • Предупреждение о подозрительном файле на C: \
  • Одна жесткая ссылка заблокирована. Как удалить другую?
  • Необходимо удалить все файлы с одним расширением на диске в Windows 7
  • Это те же ошибки, что и этот вопрос , но ответы на них действительно не работают, поскольку я имею дело с каталогом, а не с файлом, и я не всегда знаю, какие конкретные файлы или подкаталоги вызывают проблему. И я пытаюсь избежать ручного процесса (кроме запуска одной команды), чтобы фактически удалить их.

    Если я попытаюсь удалить каталог из Проводника, я получу ошибку

    Cannot delete [file name]: The file name you specified is not valid or too long. Specify a different file name 

    Попытка Remove-Item в powershell дает следующую ошибку:

     Remove-Item : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. At line:1 char:12 + Remove-Item <<<< -force -Recurse <directory> 

    Кто-нибудь знает какие-либо инструменты или простые способы обойти эту ошибку удаления без необходимости вручную находить файлы проблем и перемещать / переименовывать их?

  • Как распечатать документы в формате pdf
  • Linux эквивалентен robocopy?
  • Отключить перетаскивание (не удалять) в панели навигации проводника Windows
  • Время в час при загрузке между Windows и Fedora
  • Установка и получение переменных окружения Windows из командной строки?
  • Почему временные метки меняются при копировании или перемещении файлов в Windows?
  • 10 Solutions collect form web for “Как удалить каталоги с путями / именами слишком долго для обычного удаления”

    Загрузите 7zip , его файловый менеджер может их удалить. Бесценный, если вы используете что-то вроде Cobian Backup, которое имеет неприятную привычку создавать длинные пути …

    Из комментариев:

    Если у вас все еще есть проблемы, убедитесь, что вы используете shift + del. Это происходит из-за того, что окна пытаются переместить эти файлы в Корзину.

    Ни один из других (бесплатных) ответов здесь не работал, но я нашел один на другом сайте:

     rimraf <dir> 

    Rimraf – это пакет Node.js , поэтому вам нужно будет установить Node.js, который включает npm . Затем вы можете запустить:

     npm install -g rimraf 

    Затем вы можете запустить rimraf из командной строки.

    Я нашел это решение, потому что сама npm вызывала эту проблему из-за того, как она зависает от зависимостей.

    Кстати, rimraf получает свое имя от UNIX-команды rm -rf , которая рекурсивно удаляет файлы и папки.

    Нет необходимости устанавливать какую-либо программу для решения этой проблемы.

    Эта проблема легко решена с помощью robocopy , предустановленной с Windows Vista, запущенной в 2006 году.

    Например, в некоторых случаях отчет rmdir /S /Q <dir> не удался. Нет необходимости использовать 7zip или любой другой сторонний инструмент. Powershell – это излишество. Cygwin может работать, но вы не можете его установить. Итак, давайте сосредоточимся на robocopy

    Идея состоит в том, чтобы

    1. Использовать robocopy для копирования + обновления
    2. Из новой пустой папки
    3. В папку, которую вы хотите удалить, цель.

    После извлечения robocopy целевой каталог также будет пустым.

    Эти инструкции предназначены для командной строки. Просто откройте поиск в Windows, введите cmd и нажмите Enter.

    Скажем, папка, которую мы хотим удалить, цель, является

    C:\delete\this folder\with a very long name

    1. Сначала создайте пустой каталог, fi C:\emptyfolder .

      Mkdir C: \ emptyfolder

    2. Скопируйте + обновление из пустого каталога в цель, используя опцию «/ purge»

      Robocopy c: \ emptyfolder "C: \ delete \ эта папка \ с очень длинным именем" / очистка

    3. Удалите пустой каталог. Вам это больше не нужно.

      Rmdir c: \ emptyfolder

    Поскольку в исходном каталоге нет файлов или папок ( C:\emptyfolder ), он просто удаляет файлы и папки под целевым каталогом ( C:\delete\this folder\with a very long name ) рекурсивно!

    • Окончательный трюк: вы можете не писать вручную

      C: \ удалить \ эту папку \ с очень длинным именем

      Перетащив папку из окна проводника и опустив окно Terminal / cmd.

    Будьте осторожны : удаленные файлы не попадут в корзину мусора ! После удаления файлы не могут быть восстановлены.

    (Взято с «Путь слишком длинный? Используйте Robocopy» от BVLANGEN )

    Я считаю, что нашел способ удалить вещи из cmd . Первоначально я попробовал команду del , но это не сработало. Тогда я вспомнил rmdir . Выполнение следующих действий:

     rmdir /S /Q <dir> 

    Похоже, сработало.

    Инструментом, который я использовал, когда у меня была эта проблема, был FastCopy . Я выбрал « Удалить все» из раскрывающегося списка, выбрал каталог, который я хотел удалить, и нажал « Удалить все» .

    Снимок экрана удаления FastCopy

    FastCopy переносится (не требуется установка), и доступны 32-битные и 64-разрядные версии.

    Cygwin's rm -rf хорошо работает на длинных дорожках!

    Просто отпустите Powershell в команду, запустив ниже:

     Cmd /C "rmdir /S /Q <dir>" 

    Решение Dentrasi – это то, что сработало лучше всего для меня, но я хотел опубликовать конкретные шаги в ответе на высшем уровне.

    1. Загрузите и установите последнюю стабильную сборку 7zip .
    2. Запустите 7zip File Manager ( 7zfm.exe ).
    3. В Диспетчере файлов 7zip перейдите так, чтобы вы могли видеть имя папки, которую вы хотите удалить (т. Е. Находитесь в родительской папке).
    4. Удерживайте нажатой кнопку Shift.
    5. Нажмите кнопку « Удалить », либо на клавиатуре, либо на панели инструментов 7zip File Manager; Убедитесь, что вы все еще удерживаете клавишу Shift .
    6. Нажмите кнопку « ОК »; Убедитесь, что вы все еще удерживаете клавишу Shift .

    Без установки дополнительного программного обеспечения вы можете использовать команду subst для временного создания псевдонима в длинном именованном каталоге.

    Например, если вы хотите удалить папку C:\Very long directory\that exceed\length limit\blah blah blah\abcde\folder to be deleted вы хотите C:\Very long directory\that exceed\length limit\blah blah blah\abcde\folder to be deleted вы можете использовать команду

     subst x: "C:\Very long directory\that exceed\length limit\blah blah blah\abcde" 

    А затем вы можете удалить X:\folder to be deleted в Проводнике Windows или в командной строке. Чтобы удалить псевдоним буквенного диска, используйте команду

     subst x: /d 

    Мне нравится решение cmd. Хотя я хочу поделиться другим обходным решением, которое работает даже с Explorer: сначала попробуйте сократить имена родительских папок до удаления: более короткие имена сократят путь. Скажем, у вас есть эта древовидная структура папки:

    C: \

    .. Проекты

    .. .. Удивительный проект весной 2014 года

    .. .. .. Некоторые виды деятельности в парке в городе в пятницу

    .. .. .. .. .. Bla bla bla bla bla bla bla bla bla bla bla bla

    .. .. .. .. .. Фактические файлы с длинными именами тоже

    В этом случае вы не можете удалить папки, вы не сможете удалить или переименовать файлы. Если вы хотите удалить всю структуру папок или ее часть, вы можете временно переименовать родительские папки и сократить путь, а затем удалить папку. Имена могут быть буквами:

    C: \

    .. Проекты

    .. .. Икс

    .. .. .. y

    .. .. .. .. z

    .. .. .. .. .. Фактические файлы с длинными именами тоже

    В моем случае я просто хотел удалить всю папку со многими подпапками и файлами. Поэтому мне не нравились имена папок.

    Давайте будем гением компьютера.