После запуска robocopy.exe для резервного копирования папки C:\Users\ без использования переключателя /xj
я получил рекурсивный каталог, который был слишком длинным. Например, если вы запустите, dir /b /s
вы получите следующую ошибку:
Имя каталога C:\Users\ ... \AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data слишком длинное.
Я попытался удалить его, rmdir "Application Data" /s
но получил ошибку «Имя файла слишком длинное».
Я рассматривал другие решения, но подумал, что смогу использовать инструмент, которыйвызванныйвопрос крешатьэто.
решение1
Создайте пустой каталог с помощью mkdir empty
, затем используйте robocopy empty\ "Application Data\" /mir"
, который удалит все дерево каталогов. Затем выполните rmdir empty
и rmdir "Application Data
для очистки, и все готово.
решение2
Возможно, вам удастся cd
спуститься достаточно глубоко в каталог, чтобы удалить то, что находится ниже, а затем cd
снова подняться наверх и удалить то, что осталось.
Если это не сработало и вы все еще не можете найти решение, загрузитебесплатная демоверсияверсию моей оболочки Hamilton C (полное раскрытие информации: я автор) и использоватьrm
утилита, которая идет в комплекте, с опциями -r
(рекурсивный) и -x
(удалить что-либо).
rm -rx directoryname
Мой rm
использует новыйдлинное имя файла Unicodeотформатировать внутренне, что позволит ему манипулировать путями длиной до 32 тыс. символов, и этого должно хватить.
Если вы обнаружите, что проблема также связана с разрешениями, вам может потребоваться использоватьsudo
или su
возвышать, например,
sudo rm -rx directoryname
В действительно сложных случаях вы можете быть заблокированы ACL, который запрещает доступ, например, cacls
отчеты Everyone:(DENY)
. В этом случае вам может потребоваться удалить эту ACE (запись контроля доступа).
cacls directoryname /e /r everyone
Наконец, я действительно хочу, чтобы это было полезно. Мои журналы сервера говорят мне, что люди скачивают мое программное обеспечение, чтобы попробовать это, и я хочу, чтобы это работало. Если вы столкнетесь со случаем, когда это не сработает, я надеюсь, вы свяжетесь со мной, чтобы я мог отладить причину и заставить это работать. То, что вы не можете удалить, случается часто, и я хотел бы, чтобы все случаи были охвачены.
решение3
Вы также можете попробовать один из следующих вариантов:
Резолюция 1:Используйте автоматически сгенерированное имя 8.3 для доступа к файлу
Резолюция 2:Переименовать или переместить глубокую папку
Резолюция 3:Сопоставить диск с папкой в структуре пути Сопоставить диск с папкой внутри структуры пути целевого файла или папки. Этот метод сокращает виртуальный путь.
Резолюция 4:Используйте сетевой ресурс такой же глубины, как и папка. Если решения 1, 2 и 3 не подходят или не решают проблему, создайте сетевой ресурс такой же глубины в дереве папок, а затем переименуйте папки, обратившись к ресурсу.
Резолюция 5:Используйте инструмент, который может проходить глубокие пути