Какой самый быстрый способ удалить большую папку в Windows?

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

Другие детали:

  • Меня не волнует мусорная корзина.
  • Это диск NTFS.

Также здесь, у суперпользователя, спрашивают: superuser.com/questions/19762/mass-deleting-files-in-windows‌ /…

Hugo 02.06.2011 01:51

Возможно, rm -rf в cygwin быстрее, а возможно, Linux live cd rm -rf еще быстрее.

barlop 14.01.2013 10:22

используя cygwin ls DIRECTORY> list_files и выполните итерацию по list_files и используйте rm -rf (работает с большим файловым пулом 1 ТБ и хорошо работает)

gnuyoga 12.10.2013 13:02

Ребята, я не уверен, что это тот же опыт, что и у всех ... но если я удалю большую папку, а затем отменю ее, пока она удаляет, папка исчезнет, ​​а корзина пуста. Не уверен, почему это работает, но для меня это работает.

ladieu 19.02.2014 22:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
224
4
447 505
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Используя командную строку Windows:

rmdir /s /q folder

Использование Powershell:

powershell -Command "Remove-Item -LiteralPath 'folder' -Force -Recurse"

Обратите внимание, что в большинстве случаев del и rmdir оставят вам оставшиеся файлы, и Powershell удастся удалить их.

Кстати, вы также можете использовать rd / q / s <foldername>, однако, хотя это быстрее, чем графическое представление в проводнике Windows, оно все равно займет время длинная - MS использует алгоритм Schlemeil the Painter (joelonsoftware. com / article / fog0000000319.html) в любое время, когда dir или del выполняется

warren 09.10.2008 15:36

Согласитесь с TFD - кто-то должен отредактировать этот пост и изменить DOS на "командную строку".

Richard West 19.05.2009 20:48

Папка rm -rf работает очень быстро, если у вас установлен Cygwin.

Sinan Ünür 23.05.2009 18:18

Раньше я использовал это, но я нашел комбинацию del + rmdir почти в три раза быстрее, чем простой rmdir. Смотрите мой ответ: stackoverflow.com/questions/186737/…

Hugo 02.06.2011 01:50

Предложение Синан - самое быстрое. Установите cygwin.com, затем используйте rm -rfv имя_папки из командной строки cygwin.

Lonnie Best 09.01.2013 00:34

+1 на Cygwin, который разъединяет структуру, немного быстрее, чем это делают инструменты Windows, хотя и не так безопасно.

Tracker1 22.05.2013 01:23

Как упоминал Хьюго, было обнаружено, что del + rmdir может быть быстрее: superuser.com/a/289399/155435

mrswadge 21.11.2013 14:42

он не может удалять файлы с очень длинными именами.

Jürgen Paul 20.12.2013 09:58

Спасибо, Хьюго, я только что нашел папку Drop моей сборки, которая подвергается ядерной атаке при восстановлении примерно через 8+ минут, только что была удалена с помощью вашей команды менее чем за 50 секунд. Что потрясающе! Не могу дождаться обновления наших сценариев сборки. Ваше здоровье!

ioWint 06.09.2015 00:12

Оболочка Windows Git BASH rm -fr <folder> также работает довольно быстро.

Martin 12.12.2016 14:53

Еще +1 для Cygwin: путь быстрее

perlyking 20.04.2017 12:55

Я бы не назвал 100 МБ / мин сверхбыстрым, но все же это улучшение в проводнике Windows.

Krzysztof Wołowski 07.09.2017 09:30

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

Кроме того, проводник остановится, если возникнет конкретная проблема с файлом,

а для удаления большого количества папок вы также можете создать командный файл с помощью команды 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) откройте командную строку (Пуск> Выполнить> Cmd) и выполните командный файл. вы можете сделать это из командной строки (заменив букву диска X):

X:  
deletefiles.bat

Да, у меня есть похожий командный файл, но я обнаружил, что комбинация del + rmdir самая быстрая: stackoverflow.com/questions/186737/…

Hugo 02.06.2011 01:54

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

Я попробовал FastCopy. не уверен, что это быстрее, чем Windows, я удалял только 92 файла в секунду. Учитывая, что я перестал считать количество файлов размером более 250 КБ, мне придется вечно пользоваться им ... Ну что ж. Каждый файл имеет размер всего 20 байт. Чертовы файлы сессий PHP.

Chrispix 28.08.2010 23:59

попробуйте бесплатный инструмент с открытым исходным кодом RapidDeletePro: github.com/mhisoft/RapidDeletePro

Tony 01.11.2018 06:17

Худший способ - отправить в корзину: их все равно нужно удалить. Следующее худшее - shift + delete в проводнике 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 минуты. Больше информации на Суперпользователь.

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

Техническую документацию для команды del можно найти в здесь. Дополнительная информация об использованных выше параметрах:

  • /f - Принудительно (т.е. удалять файлы, даже если они только для чтения)
  • /s - Рекурсивные / включаемые подпапки (это определение из SS64, поскольку technet просто указывает «указанные файлы», что бесполезно).
  • /q - Тихо (т.е. не запрашивать подтверждение у пользователя)

Документация для rmdirздесь. Параметры:

  • /s - рекурсивный (т.е. такой же, как параметр del / s)
  • /q - Тихий (т.е. такой же, как параметр del / q)

@ Хьюго, вопрос: в приведенных выше тестах по времени для одного или обоих методов вы подсчитывали файлы непосредственно перед запуском метода? Я спрашиваю, потому что, возможно, содержимое папки уже находится в кеше файлов ОС. Спасибо!

William C 10.04.2012 19:20

@WilliamC: я точно не помню, но для повторных удалений с тем же содержимым я буду считать непосредственно перед только одним удалением и не буду повторять его для других удалений (поскольку я уже знаю числа).

Hugo 10.04.2012 21:20

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

Harry Johnston 26.04.2012 23:21

@HarryJohnston: Интересно. У меня было огромное количество файлов и папок, возможно, это зависит от этих факторов. (PS вы случайно номера поменяли?)

Hugo 27.04.2012 12:44

@ Хьюго: да, я сделал - да! del / rmdir 3m15s, rd 2m15s. Вы говорите, что в некоторых случаях вы могли сканировать дерево каталогов (для подсчета файлов) перед вашими исходными тестами; в недавней работе, которую я выполнял, я обнаружил, что предварительное сканирование значительно ускорило аналогичные операции, поэтому возможно, что это значительно исказило ваши результаты. Если у меня будет возможность, я проведу еще один тест с большим количеством файлов.

Harry Johnston 28.04.2012 06:49

Также возможно, что поведение зависит от ОС (я использовал Windows 7) и / или шифрования диска (мой диск не был зашифрован).

Harry Johnston 28.04.2012 06:50

Мне нужно было «Запуск от имени администратора», чтобы заставить это работать, в зависимости от диска.

Eyal 06.07.2012 19:25

Как насчет использования Cygwin. Я знаю, что это слой поверх Windows, но может ли мир Linux помочь нам лучше обслуживать?

sarat 14.08.2012 08:43

Очень быстро, хотя и давится на слишком длинных путях, но вы можете использовать total commander shift + f8 для остальных вещей.

SoonDead 04.04.2016 16:36

Я использую rmdir /s/q foldername > nul с большим успехом. Если он жалуется на «каталог не пустой» (редко), просто запустите команду еще раз.

Marc.2377 12.11.2016 04:06

Это отлично сработало для меня. Он удалил около 16 ГБ, пару сотен тысяч файлов за секунды в Windows 7. ОС какое-то время зависала на этом, прежде чем я сдался и начал искать здесь.

Engineero 11.01.2017 17:26

Действительно круто. Могу ли я распечатать прогресс во время удаления?

AndroDev 01.04.2017 13:07

@AndroDev Нет, это только для скорости. Расчеты прогресса, вероятно, являются частью того, почему проводник Windows работает так медленно.

Hugo 02.04.2017 11:15

Я создал небольшой пакетный инструмент. gist.github.com/Gaspadlo/4c22d07f5ee92a6bd91f379953664aa6 Он содержит запрос подтверждения с повторением пути, и в конце он распечатывает, когда удаление началось и когда оно закончилось.

Adam K. 12.05.2017 15:32

Отличное и элегантное решение, могу ли я предложить оптимизировать команду с помощью амперсанда командной оболочки: запускать команды последовательно: del /f/s/q foldername > nul & rmdir /s/q foldername или запускать команды последовательно, только если первая команда выполнена успешно. del /f/s/q foldername > nul && rmdir /s/q foldername

GBGOLC 11.08.2017 16:59

Если вы используете cmd.exe, также настройте его приоритет в диспетчере задач. Приоритет «в реальном времени» был для меня НАМНОГО быстрее обычного.

NicoJuicy 16.11.2017 18:04

пс. хорошее объяснение и решение для интеграции оболочки здесь: mattpilz.com/fastest-way-to-delete-large-folders-windows

JohnLBevan 21.12.2017 16:42

Я обнаружил, что приостановка индексирования Windows перед запуском операции del + rmdir помогает еще больше ускорить задачу удаления. Заметил, что индексатор использует значительную часть полосы пропускания ввода-вывода моего диска (в диспетчере задач), скорее всего, с учетом потери файлов.

pacificgilly1992 23.02.2019 00:46

del лучше, потому что он позволяет использовать подстановочные знаки. rmdir - нет.

Denis 22.03.2019 21:36

Попробуйте Shift + Delete. Сделал для меня 24000 файлов за 2 минуты.

См. Выше - избегает корзины, но все еще медленнее, чем в командной строке.

andig 12.05.2013 14:03

Этот метод удаляет файлы напрямую, а не перемещает их в корзину, но проводник по-прежнему будет пытаться подсчитать все файлы, чтобы получить оценку, что занимает много времени для больших папок (> 100k файлов)

uceumern 28.02.2017 11:21

какой был средний размер файла?

your_boy_gorja 15.11.2017 14:31

@your_boy_gorja проблема не в среднем размере файла, а в количестве файлов в папке. Когда вы удаляете с помощью проводника, проводнику необходимо прочитать все файлы, чтобы получить размер, и попытаться сделать оценку.

Vinicius Monteiro 04.01.2018 22:33

@uceumern да, этот счетчик, который он делает, смешон с папкой с большим количеством файлов (~ 40 ГБ с 1 млн файлов)

Brian Leishman 04.04.2018 16:44

Другие вопросы по теме