Який найшвидший спосіб видалити велику папку в Windows?


224

Я хочу видалити папку, яка містить тисячі файлів і папок. Якщо я використовую Windows Explorer для видалення папки, це може зайняти 10-15 хвилин (не завжди, але часто). Чи є в Windows швидший спосіб видалення папок?

Інші деталі:

  • Мене не хвилює кошик.
  • Це привід NTFS.

1
Також запитували тут у Super User: superuser.com/questions/19762/mass-deleting-files-in-windows/…
Hugo

1
Можливо, rm -rf у cygwin швидше, а може бути, linux live cd rm -rf все ж швидше.
барлоп

за допомогою cygwin ls DIRECTORY> list_files та зробіть ітерацію над list_files та використовуйте rm -rf (маючи справу з великим файловим пулом у 1 ТБ і працює добре)
gnuyoga

Хлопці, я не впевнений, чи це той самий досвід, що і всі інші ... але якщо я видаляю велику папку, а потім скасовую її, поки вона видаляє папку, і кошик порожній порожній. Не впевнений, чому це працює, але це робить для мене.
ladieu

Відповіді:


333

Використовуйте командний рядок Windows:

rmdir /s /q folder

22
btw, ви також можете використовувати rd / q / s <ім'я папки>, однак, хоча це швидше, ніж графічне представлення всередині Windows Explorer, це все ще займе багато часу - MS використовує алгоритм «Schlemeil the Painter» (joelonsoftware). com / articles / fog0000000319.html) у будь-який час, коли буде зроблено дір або дель
warren

37
rm -rf папка працює чудово швидко, якщо у вас встановлений Cygwin.
Сінан Юнюр

45
Раніше я цим користувався, але я знайшов комбо з del + rmdir майже втричі швидше, ніж звичайний rmdir. Дивіться мою відповідь: stackoverflow.com/questions/186737/…
Гюго

2
Пропозиція Сінана найшвидша. Встановіть cygwin.com, потім використовуйте rm -rfv folderName з командного рядка cygwin.
Lonnie Best

1
+1 на Cygwin, який робить від’єднання структури, трохи швидше, ніж те, як це робить інструменти Windows, але не настільки безпечний.
Tracker1

975

Найгірший спосіб - відправити в кошик: їх все одно потрібно видалити. Наступним найгіршим є зсув + видалення за допомогою Провідника Windows: він витрачає багато часу, перевіряючи вміст, перш ніж щось починати видаляти.

Наступним найкращим є використання rmdir /s/q foldernameз командного рядка. del /f/s/q foldernameтакож добре, але він залишає після себе структуру каталогів.

Найкраще, що я знайшов, - це дворядковий пакетний файл із першим проходом для видалення файлів та виходів на нуль, щоб уникнути накладного запису на екран для кожного окремого файлу. Потім другий прохід очищає решту структури каталогів:

del /f/s/q foldername > nul
rmdir /s/q foldername

Це майже втричі швидше, ніж один rmdir, заснований на тестах часу із зашифрованим диском Windows XP, видалення ~ 30 ГБ / 1 000 000 файлів / 15 000 папок: rmdirзаймає ~ 2,5 години, del+rmdirзаймає ~ 53 хвилини. Більше інформації у Super User .

Це регулярне завдання для мене, тому я зазвичай переміщую речі, які мені потрібно видалити, на C: \ stufftodelete і маю ці del+rmdirкоманди у пакетному файлі deletestuff.bat. Це планується запустити вночі, але іноді мені потрібно запустити його вдень, тим швидше, тим краще.

Документацію Technet для delкоманди можна знайти тут . Додаткова інформація про параметри, які використовуються вище:

  • /f - Форсувати (тобто видаляти файли, навіть якщо вони читаються лише)
  • /s- Рекурсивні / Включити вкладені папки (це визначення з SS64 , оскільки технет просто зазначає "вказані файли", що не корисно).
  • /q - Тихо (тобто не підказуйте користувача для підтвердження)

Документація rmdir тут . Параметри:

  • /s - рекурсивний (тобто такий же, як параметр del / s)
  • /q - тихо (тобто те саме, що і параметр del's / q)

1
Я спробував це сьогодні (правда, на меншому наборі даних) і отримав протилежний результат: використання лише rmdir було на 30% швидше (3:17), ніж використання del, а потім rmdir (2:15).
Гаррі Джонстон

6
Мені потрібно було «Запустити як адміністратор», щоб це працювало, залежно від накопичувача.
Eyal

1
Як щодо використання Cygwin. Я знаю, що це шар на вершині Windows, але чи може світ Linux допомогти нам служити краще?
сарат

1
Це спрацювало для мене чудово. У Windows 7 було видалено близько 16 Гб, кілька сотень тисяч файлів за секунду. Ось деякий час висіла на цьому, перш ніж я здався і шукав тут.
Engineero

4
Відмінне та елегантне рішення, чи можу я запропонувати впорядкувати команду за допомогою командної оболонки ampersand: Виконайте команди послідовно: del /f/s/q foldername > nul & rmdir /s/q foldername або Виконайте команди послідовно, лише якщо перша команда успішна. del /f/s/q foldername > nul && rmdir /s/q foldername
GBGOLC

6

користуйтеся швидкою копією , безкоштовним інструментом. у нього є опція видалення, яка набагато швидша, ніж спосіб видалення Windows файлів.


1
Я спробував FastCopy. не впевнений, що це швидше, ніж Windows, я отримував лише 92 файли в секунду. Зважаючи на те, що я відмовився від підрахунку кількості файлів на рівні понад 250 К, це мені знадобиться назавжди використовувати .. Ну добре. Кожен файл - це приблизно 20 байт. Файли сеансів Darn PHP.
Кріспікс

1
спробуйте безкоштовний інструмент з відкритим кодом RapidDeletePro: github.com/mhisoft/RapidDeletePro
Тоні

3

використовувати командний рядок, як було запропоновано. Я зрозумів, чому Explorer настільки повільний, тому він дає оцінку, скільки часу знадобиться для видалення файлів / папок. Для цього необхідно сканувати кількість предметів та розмір. Це займає віки, звідси смішне очікування з великими папками.

Також програма Explorer зупинить, якщо є певна проблема з файлом,


3

і щоб видалити багато папок, ви також можете створити пакетний файл із розміщеною командою spdenne.

1) Створіть текстовий файл із таким вмістом, замінюючи назви папок у лапки на імена вашої папки:

rmdir /s /q "My Apps"  
rmdir /s /q "My Documents"  
rmdir /s /q "My Pictures"  
rmdir /s /q "My Work Files"

2) збережіть пакетний файл із розширенням .bat (наприклад, deletefiles.bat)
3), відкрийте командний рядок (Start> Run> Cmd) та виконайте пакетний файл. ви можете зробити це так з командного рядка (замінивши X на букву диска):

X:  
deletefiles.bat

2
Так, у мене схожий пакетний файл, але найшвидше знайшов комбо з del + rmdir: stackoverflow.com/questions/186737/…
Hugo,

-1

Спробуйте Shift+ Delete. Зробив 24 000 файлів за 2 хвилини.


13
Дивіться вище - уникайте кошика, але все-таки повільніше, ніж командний рядок.
andig

1
Цей метод буде видаляти файли безпосередньо замість того, щоб переміщувати їх у кошик, але дослідник все одно намагатиметься порахувати всі файли, щоб отримати оцінку, яка займає віки для великих папок (> 100k файлів)
uceumern

Який був середній розмір файлу?
your_boy_gorja

@your_boy_gorja проблема полягає не в середньому розмірі файлу, а в кількості файлів у папці. Коли ви видаляєте Провідник, Провідник повинен прочитати всі файли, щоб отримати розмір, і спробувати зробити оцінку
Vinicius Monteiro

@uceumern, так це підрахунок - це смішно з папкою з багатьма, багатьма файлами (~ 40 Гб з 1м + файлів)
Брайан Лейшман,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.