9

После запуска 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 \ слишком длинные.

Я попытался удалить его с помощью rmdir "Application Data" /s но получил ошибку "Имя файла слишком длинное"

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

3 ответа3

14

Создайте пустой каталог с mkdir empty , затем используйте robocopy empty\ "Application Data\" /mir" который удалит все дерево каталогов. Затем выполните rmdir empty и rmdir "Application Data для очистки, и все готово.

4

Вы можете быть в состоянии cd достаточно глубоко в каталог , чтобы удалить то , что ниже и cd - диск обратно на вершину снова и удалить то , что осталось.

Если это не сработает и вы все еще застряли, загрузите бесплатную демо- версию моей оболочки Hamilton C (полное раскрытие: я автор) и используйте прилагаемую утилиту rm , используя -r (рекурсивно) и -x (удалить что-нибудь) опции.

rm -rx directoryname

Мой rm использует новый длинный формат имени файла в Юникоде , что позволяет ему манипулировать путями длиной до 32K символов, и это должно его получить.

Если вы обнаружите, что проблема также связана с разрешениями, вам может потребоваться использовать 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: Используйте инструмент, который может пройти глубокие пути

http://support.microsoft.com/kb/320081

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .