2013-12-11 3 views
5

У меня довольно странная проблема с структурой папок, которая была создана моей сборкой ant ... она создала структуру папок, такую ​​что C: helper/class/helper/class/helper/класса и продолжается очень долгое время.Удаление очень длинного пути в каталоге

мне было интересно, если есть какой-то сценарий, который я мог бы использовать, чтобы удалить эти папки с помощью CMD на Windows 7.

Я уже пробовал:

rmdir /s /q 

наряду с попытками использовать:

robocopy "C:helper/class/helper/class/helper/class" C:Test 

Но до сих пор я не получил никакой удачи ...

кто-нибудь есть S ugestions или script, который я мог бы использовать для файла bat, чтобы рекурсивно удалить эту структуру?

+0

Использование обычного процесса удаления, какую ошибку вы получаете? – Chelseawillrecover

+0

@ Слишком длинное имя файлаChelseawillrec .... Я попытался пройти через каждую папку и сделать ее а, поэтому это 'a/a/a/a/a/a/a/helper/class/helper/class', но безрезультатно ... Я читал, что я должен брать промежуточные папки и удалять их на рабочий стол и удалять более короткую более высокую структуру, но кажется, что она берет навсегда – koala421

+0

Все, что я прошу, это удалить верхнюю корневую папку, Какая у вас ошибка. Я предполагаю, что вы хотите удалить всю папку? – Chelseawillrecover

ответ

10

Попробуйте

robocopy /e /b /purge c:\empty c:\folder-to-delete 
+1

Возможно, было бы более полезно объяснить это. Это работало для меня, но на благо других, которые, возможно, не слышали о Robocopy. –

+1

Отлично работает, просто нужно сначала создать 'c: \ empty'. –

1

Проблема может быть связана с ограничением того, как долго пути могут быть в самой Windows. Есть предел около 155 символов. В проекте Java (или даже проекте C# .NET) очень просто создать эти очень длинные пути. Особенно, если вы ставите свой проект под что-то вроде C:\Documents and Settings\Baron Van Hushoven\Documents\Projects\My Project - 74 символа).

Если это ваша проблема, вы можете быть вынуждены использовать команду Subst. Это позволяет создать букву диска, представляющую другой путь, затем вы можете использовать эту букву диска, чтобы помочь создать более короткий путь.

C:\> subst x: "C:\Documents and Settings\Baron Van Hushoven\Documents\Projects\My Project" 

Теперь вы можете использовать X: в корневом каталоге вашего проекта, который сократит пути вы пытаетесь удалить 74 символов, которые могут быть достаточно для Windows, чтобы иметь возможность получить доступ к этим файлам.


. Предел на самом деле 260, но как только вы положили в C:\, вы почти до 255. По иронии судьбы, NTFS может обрабатывать чрезвычайно длинные пути около 32 тыс., А Windows также может обрабатывать эти длинные имена. Возможно, вы сможете префикс пути с помощью "\\?\" as in \? \ C: \ Documents ... `Однако я не считаю, что это работает в проводнике Windows или в командной консоли.

+0

Robocopy может обрабатывать длинные пути. –

+0

@HarryJohnston Похоже на замену 'xcopy'. Я никогда не слышал об этом раньше. Благодарю. Приятно знать. –

1

Я имел гораздо больше успеха с помощью встроенного дель команды в Windows 7.

Я видел del /s /q работы в ситуациях, когда rmdir /s /q не делает.

+0

'rmdir/s/q' работал для меня :) –

0

Установите cygwin и используйте команду unix rm -rf для удаления.

7

del и rmdir команды не могут удалять папки с длинными именами. Но 7-Zip может! Щелкните правой кнопкой мыши папку, которую нужно удалить. Выберите «Добавить в архив» в контекстном меню 7-Zip и установите опцию «Удалить файлы после сжатия» в диалоговом окне «Добавить в архив» 7-Zip. 7-Zip создает архивные файлы и удаляет папку с длинными путями! После этого вы можете удалить файл архива.

enter image description here

Смежные вопросы