Windows как удалить папку с большим количеством файлов

Хотите удалить объёмные папки на вашем диске, но это занимает слишком много времени? Советы в статье помогут удалить их быстро.

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

Я держу резервные папки локально на диске, и эти папки приближаются к 30 гигабайтам размером более 140 000 файлов и 350 папок.

Когда мне нужно удалить их снова, это займет много времени, если я запустил операцию удаления в Проводнике Windows. Первое, что происходит, — это то, что Windows запускает вычисления, которые сами по себе могут занять очень много времени.

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

Для удаления большой папки с помощью проводника на устройствах Windows может потребоваться десять или двадцать минут или даже больше.

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

Мэтт Пилц, который писал об этом еще в 2015 году, сократил с 11 до 29 секунд, что сделало операцию командной строки более чем в 20 раз быстрее, чем удаление через «Проводник».

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

Две команды, которые требуются пользователям, — это Del, для удаления файлов и Rmdir, для удаления каталогов.

  1. Нажмите на клавишу Windows, введите cmd.exe и выберите результат для загрузки командной строки.
  2. Перейдите в папку, которую вы хотите удалить (со всеми ее файлами и подпапками). Для этого используйте cd-путь, например cd o:backupstest
  3. Команда DEL /F/Q/S *.* > NUL удаляет все файлы в этой структуре папок и опускает вывод, который улучшает процесс дальше.
  4. Используйте cd .. для перехода к родительской папке.
  5. Запустите команду имя файла RMDIR / Q / S, чтобы удалить папку и все ее подпапки.
  6. Командам может потребоваться некоторое объяснение.

DEL /F/Q/S *.* > NUL

  • /F — принудительно удаляет файлы только для чтения.
  • /Q — включение тихого режима. Вы не спрашиваете, нормально ли удалять файлы (если вы этого не используете, вас спрашивают о любом файле в папке).
  • /S — запускает команду для всех файлов в любой папке в выбранной структуре.
  • *.* — удалить все файлы.
  • > NUL — отключает вывод консоли. Это улучшает процесс, сокращая примерно четверть времени обработки команды консоли.

RMDIR /Q/S имя_папки

  • /Q — Тихий режим не будет запрашивать подтверждение для удаления папок.
  • /S — Запустите операцию во всех папках выбранного пути.
  • имя_папки — абсолютный путь или относительное имя папки, например o:/backup/test1 или test1

Создание командного файла и добавление его в контекстное меню Проводника

Если вам не нужно часто запускать команду, вы можете отлично выполнять команды непосредственно из командной строки.

Однако, если вы часто используете его, вы можете оптимизировать процесс. Вы можете добавить команду в контекстное меню Проводника, чтобы вы могли запускать ее непосредственно там.

Первое, что вам нужно сделать, это создать пакетный файл. Создайте новый текстовый документ в Windows и вставьте в него следующие строки кода.

@ECHO OFF
ECHO Delete Folder: %CD%?
PAUSE
SET FOLDER=%CD%
CD /
DEL /F/Q/S "%FOLDER%" > NUL
RMDIR /Q/S "%FOLDER%"
EXIT

Сохраните файл как delete.bat впоследствии. Убедитесь, что он имеет расширение .bat, а не расширение .txt.

В пакетном файле содержится запрос безопасности. Это дает вам возможность остановить процесс, что важно, если вы случайно выбрали пункт контекстного меню. Вы можете использовать CTRL-C или щелкнуть по x окна, чтобы остановить процесс. Если вы нажмете любую другую клавишу, все папки и файлы будут удалены без какой-либо опции, чтобы остановить процесс.

Вам нужно добавить командный файл в место, которое является переменной окружения PATH. Хотя вы можете создать свою собственную переменную, вы также можете перенести ее в папку, которая уже поддерживается, например C:Windows.

Выполните следующие действия, чтобы добавить новый пакетный файл для быстрого удаления папок в контекстном меню Проводника Windows.

  1. Нажмите на клавишу Windows, введите regedit.exe и нажмите клавишу Enter, чтобы открыть редактор реестра Windows.
  2. Подтвердите приглашение UAC.
  3. Перейдите в HKEY_CLASSES_ROOTDirectoryshell
  4. Щелкните правой кнопкой мыши на оболочке и выберите «Создать»> «Ключ».
  5. Назовите кнопку «Fast Delete»
  6. Щелкните правой кнопкой мыши на «Быстрое удаление» и выберите «Создать»> «Ключ».
  7. Назовите команду ключа.
  8. Дважды щелкните по умолчанию по команде.
  9. Добавьте значение cmd /c "cd %1 && delete.bat" в качестве значения.

Содержание

  1. Expert Users
  2. Медленные способы удаления
  3. Быстрые способы удаления
  4. Вывод
  5. Похожие записи:
  6. Комментарии к записи “ Как быстро удалить много файлов в Windows ”
  7. Быстрое удаление объёмных папок на Windows
  8. Создание командного файла и добавление его в контекстное меню Проводника
  9. Каков самый быстрый способ удаления большой папки в Windows?
  10. 6 ответов
  11. Как удалить файл или папку, которые не удаляются
  12. Причины, из-за которых папка или файл не удаляются
  13. Проверка защиты от записи
  14. Проверка на вирусы
  15. Проверка доступа к файлу
  16. Использование «Диспетчера задач»
  17. Использование командной строки
  18. Удаление файла
  19. Удаление папки
  20. Использование безопасного режима
  21. Использование загрузочного диска
  22. Использование сторонних программ
  23. FileASSASSIN
  24. Unlocker
  25. Другие программы
  26. Заключение
  27. Если к вам уже выехали: удаляем данные без возможности восстановления
  28. Содержание
  29. Содержание
  30. Зачем это нужно?
  31. Методы безвозвратного удаления данных
  32. Программы для удаления данных
  33. Советы по безопасности личных данных

Expert Users

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

Медленные способы удаления

a. Самый медленный способ удаления с использованием корзины. При этом вам придется удалять файлы еще раз, из самой корзины.

b. Следующий по скорости способ – удаление файлов через проводник Windows, используя комбинацию клавиш Shift+Delete (т.е. файлы будут удаляться сразу, минуя корзину). Но этот способ тратит очень много времени на перечисление и проверку всех файлов. Поэтому этот способ тоже не годится.

Быстрые способы удаления

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

1. Этот метод удаляет все файлы и вложенные папки за один проход

2. Во втором методе сначала удаляются все файлы, минуя вывод текстовой информации на экран (что также значительно экономит время). На следующем этапе удаляются все оставшиеся пустые папки.

Несмотря на то, что во втором методе используется две команды, он работает почти в три раза быстрее первого. Поэтому если вам постоянно требуется удалять очень много файлов, то вы можете создать bat файл и уже запускать его как одну команду.

Вывод

И метод 1, и метод 2 удаляют файлы гораздо быстрее, чем если это делать через проводник Windows. Поэтому если вам важна скорость, то смело запускайте командную строку cmd.exe и вперед, удалять файлы!

Похожие записи:

Комментарии к записи “ Как быстро удалить много файлов в Windows ”

Але в команда DEL не працює, коли шлях до файлу довгий.

Источник

Быстрое удаление объёмных папок на Windows

fodlers

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

Я держу резервные папки локально на диске, и эти папки приближаются к 30 гигабайтам размером более 140 000 файлов и 350 папок.

Когда мне нужно удалить их снова, это займет много времени, если я запустил операцию удаления в Проводнике Windows. Первое, что происходит, — это то, что Windows запускает вычисления, которые сами по себе могут занять очень много времени.

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

Для удаления большой папки с помощью проводника на устройствах Windows может потребоваться десять или двадцать минут или даже больше.

windows super fast delete large folders

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

Мэтт Пилц, который писал об этом еще в 2015 году, сократил с 11 до 29 секунд, что сделало операцию командной строки более чем в 20 раз быстрее, чем удаление через «Проводник».

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

Две команды, которые требуются пользователям, — это Del, для удаления файлов и Rmdir, для удаления каталогов.

DEL /F/Q/S *.* > NUL

RMDIR /Q/S имя_папки

Создание командного файла и добавление его в контекстное меню Проводника

Если вам не нужно часто запускать команду, вы можете отлично выполнять команды непосредственно из командной строки.

Однако, если вы часто используете его, вы можете оптимизировать процесс. Вы можете добавить команду в контекстное меню Проводника, чтобы вы могли запускать ее непосредственно там.

Первое, что вам нужно сделать, это создать пакетный файл. Создайте новый текстовый документ в Windows и вставьте в него следующие строки кода.

В пакетном файле содержится запрос безопасности. Это дает вам возможность остановить процесс, что важно, если вы случайно выбрали пункт контекстного меню. Вы можете использовать CTRL-C или щелкнуть по x окна, чтобы остановить процесс. Если вы нажмете любую другую клавишу, все папки и файлы будут удалены без какой-либо опции, чтобы остановить процесс.

Вам нужно добавить командный файл в место, которое является переменной окружения PATH. Хотя вы можете создать свою собственную переменную, вы также можете перенести ее в папку, которая уже поддерживается, например C:Windows.

delete folders quickly

Выполните следующие действия, чтобы добавить новый пакетный файл для быстрого удаления папок в контекстном меню Проводника Windows.

fast delete

Источник

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

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

6 ответов

Используйте Командную Строку Windows:

худший способ-отправить в корзину: вам все равно нужно удалить их. Следующее Худшее-shift + delete с помощью Проводника Windows: он тратит массу времени на проверку содержимого перед началом удаления.

далее лучше всего использовать rmdir /s/q foldername из командной строки. del /f/s/q foldername тоже хорошо, но он оставляет позади структуру каталогов.

лучшее, что я нашел, это двухстрочный пакетный файл с первым проходом для удаления файлов и выходов в nul, чтобы избежать накладных расходов писать для каждого файла подпалить. Второй проход затем очищает оставшуюся структуру каталогов:

это почти в три раза быстрее, чем один rmdir, основанный на тестах времени с зашифрованным диском Windows XP, удаление

30GB / 1,000,000 файлов / 15,000 папок: rmdir занимает

2,5 часа, del+rmdir занимает

53 минуты. Дополнительная информация на Супер Пользователя.

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

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

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

Источник

Как удалить файл или папку, которые не удаляются

Любой пользователь компьютеров хоть раз, но сталкивался с ситуацией, когда простая, казалось бы, процедура, коей является удаление файла, заканчивалась неудачей. Если же такого у вас не случалось, то либо вы знаете, как не допустить этой ситуации, либо все еще у вас впереди. Потому и поведем сегодня речь о том, как удалить не удаляющийся файл или папку, приведем несколько методов решения этой проблемы. Тем, кто столкнулся с такой ситуацией, поможем ее решить, для кого это внове – будут уже во всеоружии и будут готовы справиться с неудаляемыми файлами.

Причины, из-за которых папка или файл не удаляются

Невозможность удаления файла может быть объяснена несколькими причинами:

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

Следует только сделать одну оговорку – вы уверены, что предназначенный для удаления файл действительно ненужный? ОС Windows защищает папки и файлы, необходимые для ее стабильного функционирования, и попытки настоять на своем могут привести к «падению» системы и необходимости решать уже совсем другие задачи. Прежде, чем приступать к удалению файлов, убедитесь, что это действительно «мусор». Особенно аккуратным следует быть при избавлении от объектов в системных папках.

Проверка защиты от записи

Прежде чем приступать к каким-то радикальным методам, следует убедиться в том, что вы имеете право удалять файлы. Если они расположены на флешках или картах памяти, то начать надо с самого простого – убедиться, что механический переключатель, который предотвращает запись/стирание, не установлен в соответствующее положение, блокирующее выполнение подобных действий.

Проверка на вирусы

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

Проверка доступа к файлу

Помогающий в некоторых случаях способ удалить файл – перезагрузка компьютера. Вполне возможно, что тот объект, от которого необходимо избавиться – результат работы той или иной программы, которая была деинсталлирована некорректно, или это было выполнено не полностью, и в системе остались какие-то программные модули (DLL, процессы), которые все еще работают и не позволяют выполнить удаление. Вполне возможно, что после перезапуска системы ненужные процессы работать не будут и файл освободится от излишней опеки. Удаляйте.

Другой момент – запрет на выполнение операций записи/стирания в данной папке, установленный администратором компьютера. Необходимо зайти в свойства папки, и на вкладке «Безопасность» проверить выданные права. prava dostupa k fajlu

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

Использование «Диспетчера задач»

Ели при попытке удаления выдается сообщение, что файл открыт в другой программе, и указывается конкретный процесс (программа), то ситуация несколько упрощается, т. к. известно, что именно нам мешает избавиться от ставшего ненужным файла. fajl ispolzuetsya antivirusnoj utilitoj

После этого файл можно попробовать удалить. Скорее всего, это получится.

Использование командной строки

Файл может удерживаться системный процессом «explorer», отвечающим за работу панели задач, рабочего стола и т. п. Если просто снять этот процесс, то удалить файл может оказаться проблематичным. В то же время командная строка позволит справиться с теми объектами, которые никак не могут быть удалены с помощью «Проводника» Windows.

Для того, чтобы воспользоваться этим средством, нужно запустить командную строку, для чего после нажатия кнопки «Пуск» в поле поиска ввести «cmd», нажать правую кнопку мыши и выбрать режим запуска с административными правами. Откроется окно, в котором следует ввести команды на удаление файла или папки. zapusk komandroj stroki ot imeni administratora

Этим способом можно попробовать удалить поврежденный файл.

Удаление файла

Используется команда «Del». Надо ввести строку:

/F – принудительное удаление файлов, помеченных как доступные только для чтения.

/Q – не выдавать запрос на подтверждение операции удаления.

/S – удаление вложенных папок и файлов в них.

Удаление папки

Для удаления папки целиком используется другая команда:

/S – удаление вложенных папок и файлов.

/Q — не выдавать запрос на подтверждение операции удаления.

Использование безопасного режима

Если остановить блокирующий доступ к файлу процесс не удается по тем или иным причинам, или непонятно, какой же процесс мешает, то может помочь этот способ, при котором система загружается в безопасном режиме. При этом стартует необходимый минимум процессов, и тот, который «держал» файл, останется в неактивированном состоянии. Можно попробовать удалить файл.

Использование загрузочного диска

Случается, что даже безопасный режим не позволяет избавиться от ненужной папки или файла. Тогда может помочь загрузка с внешнего загрузочного диска. Как вариант – жесткий диск, на котором необходимо произвести удаление файлов, можно подключить к другому компьютеру. Тогда, загрузившись с другого носителя, ваш диск будет подключен в качестве второго (третьего и т. д.) диска, ОС на котором будет не запущена. Теперь остается только найти нужный файл и удалить его.

Использование сторонних программ

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

FileASSASSIN

Бесплатная утилита, скачать которую можно по ссылке. Среди достоинств программы – простой интерфейс, возможность запуска из командной строки, разблокировка и (если указан такой режим) удаление файла. udalenie fajla v FileASSASSIN

Чтобы избавиться от ненужного файла, надо указать путь к нему, отметить галочкой пункт «Delete file» и нажать кнопку «Execute». Это все, что необходимо сделать. Если работать с командной строкой вы не хотите, а также не хотите копаться в процессах и запущенных программах, то данный способ – возможность быстро и эффективно решить все проблемы с заблокированными файлами.

Unlocker

Пожалуй, известнейшая программа, известная давно и используемая часто. Найти ее можно по этой ссылке, где есть нужные версии под 32-х и 64-х разрядные ОС. Есть и портативная версия для тех, кто не любит устанавливать много программ в систему, а предпочитает запускать нужные средства для обслуживания системы автономно.

В использовании портативных версий есть еще одно преимущество: при инсталляции подобных программ часто «паровозом» инсталлируются еще несколько утилит, расширений к браузерам и т. п., которые вам совсем не нужны, которые буду досаждать рекламой, и от которых, порой, не совсем просто избавиться. Приходится быть внимательным при установке подобного софта. Как правило, с портативными версиями такого не происходит.

Сама программа предельно проста. При запуске откроется окно, где необходимо указать расположение файла, который необходимо удалить. obzor fajlov i papok

Надо только нажать кнопку «Ок», после чего появится новое окно, в котором нужно будет подтвердить действие, которое надо выполнить над файлом. Если никаких блокировок файла не найдено, то появится окно: ne najdeno zablokirovannyh fajlov v Unlocker

Надо указать, что делать с файлом – удалить, оставить как есть, перенести и т. п.

Другие программы

Помимо перечисленных есть и другие утилиты, выполняющие ту же работу. Как пример, можно привести: Delete Doctor, Free File Unlocker, MoveOnBoot, Tizer UnLocker, Wize Force Deleter. Принцип действия у них схож, поэтому, выбирать можно ту, которая понравилась и которая помогла решить проблемы с неудаляемыми файлами или папками.

Заключение

Чем удалить файлы или папки, какой способ выбрать – все зависит от конкретной ситуации. Кто-то предпочитает использовать специализированный «софт», кто-то не любит захламлять систему множеством узкоспециальных утилит и предпочитает использовать все встроенные возможности ОС.

Главное – иметь представление о разных способах решения проблем и умение их применять на практике. Надеемся, что как минимум один из предложенных нами способов вам помог.

Источник

Если к вам уже выехали: удаляем данные без возможности восстановления

q93 d536e80d53b4d13a7e71469a2c6307c778d83284c451178715692feca7bc3876

q93 cad42ab2f4d80a9ac7735d078f9b6c16c2e0210ed4fec3d8f6097fd2a54a9a16

Содержание

Содержание

Обычное удаление файлов через “Корзину” и даже форматирование жесткого диска (особенно в “быстром” режиме) не означает, что данные пропали навсегда. Чаще всего эти действия всего лишь помечают файл как удаленный и не занимающий больше места на жестком диске. Но при этом данные остаются целыми и часто даже не повреждаются. А значит, не составит труда восстановить их с помощью специальных программ.

Зачем это нужно?

Чаще всего безвозвратное удаление используется в государственных и коммерческих структурах, чтобы обезопасить секретные данные от прочтения посторонними. Но и частным пользователям иногда необходимо уничтожить информацию на компьютере по разным причинам:

Методы безвозвратного удаления данных

Форматирование жесткого диска

Windows располагает внутренними средствами для форматирования жестких дисков. Но по сути такая операция представляет собой просто удаление всей информации, то есть скрытие файлов. Существует много программ, способных восстановить отформатированные разделы. Определенную гарантию может дать разве что полное форматирование с переходом из файловой системы NTFS в систему FAT, а затем обратно с делением жесткого диска на разделы.

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

Использование твердотельного накопителя (SSD) вместо обычного жесткого диска (HDD) может ускорить работу компьютера в разы и обезопасить его от случайных повреждений из-за отсутствия в нем подвижных частей. Но при этом восстановить удаленные данные с SSD очень сложно, а в большинстве случаев невозможно.

TRIM не поддерживает Mac OS ниже версии 10.6.6 и Mac OS в сочетании со сторонними SSD (не оригинальными). Windows ниже Vista также не работает с данной командой. Информацию можно восстановить с внешних устройств (например, флешек), так как TRIM не поддерживается протоколами USB и FireWare.

Использование стирающих данные программ

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

Физическое уничтожение

Программы для удаления данных

q93 56eb0ff33593fac1e387aec9aec51d1e25da03b03220915bd52a9538541d86b7

q93 6f867f3e06f56db8ec6caaf8b80e6bb4ac30a9fb8a443fbe6e197e5c79b29420

q93 d78c75db4af90d3d8867c4b6236f0fa8606144a483608c9aec75c48441b6234a

Утилита, встроенная в платную программу Hard Disk Manager. Сейчас доступна только на английском языке. Не работает с отдельными файлами, но надежно очищает свободное пространство на диске или диск полностью.

Советы по безопасности личных данных

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

2. Проверьте, чтобы информация, которую вы решили удалить навсегда, не осталась на других носителях, доступных посторонним.

3. При передаче конфиденциальных данных через интернет пользуйтесь шифровальными программами, иначе файлы могут остаться на стороннем сервере.

Источник

Technical Explanation

The reason that most methods are causing problems is that Windows tries to enumerate the files and folders. This isn’t much of a problem with a few hundred—or even thousand—files/folders a few levels deep, but when you have trillions of files in millions of folders going dozens of levels deep, then that will definitely bog the system down.

Let’s you have “only” 100,000,000 files, and Windows uses a simple structure like this to store each file along with its path (that way you avoid storing each directory separately, thus saving a some overhead):

struct FILELIST {                   // Total size is 264 to 528 bytes:
  TCHAR         name[MAX_PATH];     // MAX_PATH=260; TCHAR=1 or 2 bytes
  FILELIST*     nextfile;           // Pointers are 4 bytes for 32-bit and 8 for 64-bit
}

Depending on whether it uses 8-bit characters or Unicode characters (it uses Unicode) and whether your system is 32-bit or 64-bit, then it will need between 25GB and 49GB of memory to store the list (and this is a a very simplified structure).

The reason why Windows tries to enumerate the files and folders before deleting them varies depending on the method you are using to delete them, but both Explorer and the command-interpreter do it (you can see a delay when you initiate the command). You can also see the disk activity (HDD LED) flash as it reads the directory tree from the drive.

Solution

Your best bet to deal with this sort of situation is to use a delete tool that deletes the files and folders individually, one at a time. I don’t know if there are any ready-made tools to do it, but it should be possible to accomplish with a simple batch-file.

@echo off
if not [%1]==[] cd /d %1
del /q *
for /d %%i in (*) do call %0 "%%i"

What this does is to check if an argument was passed. If so, then it changes to the directory specified (you can run it without an argument to start in the current directory or specify a directory—even on a different drive to have it start there).

Next, it deletes all files in the current directory. In this mode, it should not enumerate anything and simply delete the files without sucking up much, if any, memory.

Then it enumerates the folders in the current directory and calls itself, passing each folder to it(self) to recurse downward.

Analysis

The reason that this should work is because it does not enumerate every single file and folder in the entire tree. It does not enumerate any files at all, and only enumerates the folders in the current directory (plus the remaining ones in the parent directories). Assuming there are only a few hundred sub-directories in any given folder, then this should not be too bad, and certainly requires much less memory than other methods that enumerate the entire tree.

You may wonder about using the /r switch instead of using (manual) recursion. That would not work because while the /r switch does recursion, it pre-enumerates the entire directory tree which is exactly what we want to avoid; we want to delete as we go without keeping track.

Comparison

Lets compare this method to the full-enumeration method(s).

You had said that you had “millions of directories”; let’s say 100 million. If the tree is approximately balanced, and assuming an average of about 100 sub-directories per folder, then the deepest nested directory would be about four levels down—actually, there would be 101,010,100 sub-folders in the whole tree. (Amusing how 100M can break down to just 100 and 4.)

Since we are not enumerating files, we only need to keep track of at most 100 directory names per level, for a maximum of 4 × 100 = 400 directories at any given time.

Therefore the memory requirement should be ~206.25KB, well within the limits of any modern (or otherwise) system.

Test

Unfortunately(?) I don’t have a system with trillions of files in millions of folders, so I am not able to test it (I believe at last count, I had about ~800K files), so someone else will have to try it.

Caveat

Of course memory isn’t the only limitation. The drive will be a big bottleneck too because for every file and folder you delete, the system has to mark it as free. Thankfully, many of these disk operations will be bundled together (cached) and written out in chunks instead of individually (at least for hard-drives, not for removable media), but it will still cause quite a bit of thrashing as the system reads and writes the data.

Technical Explanation

The reason that most methods are causing problems is that Windows tries to enumerate the files and folders. This isn’t much of a problem with a few hundred—or even thousand—files/folders a few levels deep, but when you have trillions of files in millions of folders going dozens of levels deep, then that will definitely bog the system down.

Let’s you have “only” 100,000,000 files, and Windows uses a simple structure like this to store each file along with its path (that way you avoid storing each directory separately, thus saving a some overhead):

struct FILELIST {                   // Total size is 264 to 528 bytes:
  TCHAR         name[MAX_PATH];     // MAX_PATH=260; TCHAR=1 or 2 bytes
  FILELIST*     nextfile;           // Pointers are 4 bytes for 32-bit and 8 for 64-bit
}

Depending on whether it uses 8-bit characters or Unicode characters (it uses Unicode) and whether your system is 32-bit or 64-bit, then it will need between 25GB and 49GB of memory to store the list (and this is a a very simplified structure).

The reason why Windows tries to enumerate the files and folders before deleting them varies depending on the method you are using to delete them, but both Explorer and the command-interpreter do it (you can see a delay when you initiate the command). You can also see the disk activity (HDD LED) flash as it reads the directory tree from the drive.

Solution

Your best bet to deal with this sort of situation is to use a delete tool that deletes the files and folders individually, one at a time. I don’t know if there are any ready-made tools to do it, but it should be possible to accomplish with a simple batch-file.

@echo off
if not [%1]==[] cd /d %1
del /q *
for /d %%i in (*) do call %0 "%%i"

What this does is to check if an argument was passed. If so, then it changes to the directory specified (you can run it without an argument to start in the current directory or specify a directory—even on a different drive to have it start there).

Next, it deletes all files in the current directory. In this mode, it should not enumerate anything and simply delete the files without sucking up much, if any, memory.

Then it enumerates the folders in the current directory and calls itself, passing each folder to it(self) to recurse downward.

Analysis

The reason that this should work is because it does not enumerate every single file and folder in the entire tree. It does not enumerate any files at all, and only enumerates the folders in the current directory (plus the remaining ones in the parent directories). Assuming there are only a few hundred sub-directories in any given folder, then this should not be too bad, and certainly requires much less memory than other methods that enumerate the entire tree.

You may wonder about using the /r switch instead of using (manual) recursion. That would not work because while the /r switch does recursion, it pre-enumerates the entire directory tree which is exactly what we want to avoid; we want to delete as we go without keeping track.

Comparison

Lets compare this method to the full-enumeration method(s).

You had said that you had “millions of directories”; let’s say 100 million. If the tree is approximately balanced, and assuming an average of about 100 sub-directories per folder, then the deepest nested directory would be about four levels down—actually, there would be 101,010,100 sub-folders in the whole tree. (Amusing how 100M can break down to just 100 and 4.)

Since we are not enumerating files, we only need to keep track of at most 100 directory names per level, for a maximum of 4 × 100 = 400 directories at any given time.

Therefore the memory requirement should be ~206.25KB, well within the limits of any modern (or otherwise) system.

Test

Unfortunately(?) I don’t have a system with trillions of files in millions of folders, so I am not able to test it (I believe at last count, I had about ~800K files), so someone else will have to try it.

Caveat

Of course memory isn’t the only limitation. The drive will be a big bottleneck too because for every file and folder you delete, the system has to mark it as free. Thankfully, many of these disk operations will be bundled together (cached) and written out in chunks instead of individually (at least for hard-drives, not for removable media), but it will still cause quite a bit of thrashing as the system reads and writes the data.

Содержание

  • Как удалить большое количество файлов?
  • Как быстро удалить папку большого размера?
  • Как быстро очистить папки?
  • Как удалить Неудаляемую папку программа?
  • Как удалить большое кол во папок?
  • Как удалить выбранные файлы?
  • Как найти самые большие файлы на компьютере?
  • Как создать папку и переименовать его?
  • Что можно делать с папками?
  • Как удалить старые файлы обновления Windows 10?
  • Как удалить папку если она не удаляется?
  • Где удалить файлы обновления Windows 10?
  • Как удалить Неудаляемую?
  • Как удалить Неудаляемую папку в Windows 10?

Как удалить большое количество файлов?

Попробуйте нажать клавишу «Ctrl» и удерживая её кликнуть по файлу – он должен выделится, теперь не отпуская «Ctrl» кликнете по другому файлу, он так же должен выделиться. Как вы, наверное, уже догадались, теперь достаточно лишь нажать кнопку «Del» и эти два файла удалялся.

Как быстро удалить папку большого размера?

Следующий по скорости способ – удаление файлов через проводник Windows, используя комбинацию клавиш Shift+Delete (т. е. файлы будут удаляться сразу, минуя корзину). Но этот способ тратит очень много времени на перечисление и проверку всех файлов.

Как быстро очистить папки?

Как удалить временные папки и файлы

  1. Нажмите Ctrl+A на клавиатуре, чтобы выделить все файлы в открывшейся папке.
  2. Нажмите Del (Delete) на клавиатуре, чтобы удалить файлы.

5 июн. 2020 г.

Как удалить Неудаляемую папку программа?

Программы для удаления неудаляемых файлов

  1. Advanced SystemCare Free.
  2. IObit Unlocker.
  3. Unlocker.
  4. LockHunter.
  5. UnLock IT.
  6. FileASSASSIN.

Как удалить большое кол во папок?

Быстрое удаление объёмных папок на Windows

  1. Нажмите на клавишу Windows, введите cmd.exe и выберите результат для загрузки командной строки.
  2. Перейдите в папку, которую вы хотите удалить (со всеми ее файлами и подпапками). …
  3. Команда DEL /F/Q/S *. …
  4. Используйте cd .. для перехода к родительской папке.

29 нояб. 2018 г.

Как удалить выбранные файлы?

Все файлы, которые вы скачали и сохранили из Интернета, содержатся в этой папке. Щелкните правой кнопкой мыши по файлу, который вы хотите удалить. Должно появиться меню и один из пунктов — «Delete»; щелкните по нему. Должно появиться подтверждающее сообщение с вопросом, хотите ли вы переместить его в корзину.

Как найти самые большие файлы на компьютере?

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

Как создать папку и переименовать его?

Способ. Откройте двойным щелчком левой кнопкой мыши по только что созданной папке, и кода она откроется, кликните правой кнопкой мыши на пустом поле этой папки . Выберите в выпадающем контекстном меню пункт «Создать» и пункт «Папку».

Что можно делать с папками?

Операции с файлами и папками

  • Открыть файл или папку …
  • Операция переименования папок и файлов …
  • Операция перемещения папок и файлов …
  • Операции копирования файлов и папок …
  • Операция удаления папок и файлов …
  • Групповые операции с файлами и папками …
  • Операция создания папок и файлов

3 февр. 2013 г.

Как удалить старые файлы обновления Windows 10?

Удаление обновлений в Windows 10

Откройте «Параметры» > «Система» > «Память устройства» > справа нажмите на ссылку «Временные файлы». Шаг 2. Далее в новом появившимся окне найдите «Очистка обновлений Windows», отметьте галочкой этот пункт и выше нажмите «Удалить файлы».

Как удалить папку если она не удаляется?

  1. Перезапустите компьютер …
  2. Воспользуйтесь архиватором …
  3. Удалите папку через учётную запись администратора …
  4. Проверьте систему на вирусы …
  5. Проверьте, чтобы внутри папки не было заблокированных файлов …
  6. Воспользуйтесь сторонним менеджером файлов …
  7. Удалите папку в безопасном режиме

8 янв. 2018 г.

Где удалить файлы обновления Windows 10?

Удалить файлы обновления Windows 10

  1. Нажмите Win + R на клавиатуре и введите services. …
  2. Остановите службу с именем Windows Update.
  3. Откройте проводник.
  4. Перейдите в C:WINDOWSSoftwareDistributionDownload. …
  5. Выберите все файлы в папке (нажмите клавиши Ctrl-A).
  6. Нажмите клавишу Delete на клавиатуре.

Как удалить Неудаляемую?

Как удалить неудаляемый файл или папку в Windows

  1. Отобразить скрытые файлы в Windows.
  2. Безопасный режим
  3. Скопировать и вставить файл/папку в другое место
  4. Удалить файл с помощью командной строки
  5. Сканирование жесткого диска
  6. Анализ жесткого диска в безопасном режиме
  7. Используйте антивирус для удаления файла или папки
  8. Специальные инструменты для удаления файла или папки

18 нояб. 2019 г.

Как удалить Неудаляемую папку в Windows 10?

Удаление неудаляемых папок с помощью программы — Unlocker

  1. Установите программу.
  2. Выделите интересующую папку или файл. …
  3. Найдите строку Unlocker, кликните по ней. …
  4. Нажимаете на кнопку «Удалить процесс», после чего можно будет стереть непосредственно сам файл.

21 февр. 2016 г.

Интересные материалы:

Как написать сообщение в электронной почте?
Как написать тире на клавиатуре?
Как написать заявление до трех лет?
Как нарастить мышечную массу?
Как натереть сапоги до блеска?
Как научиться правильно ставить запятые в предложениях?
Как называется сочетание цветов в картине?
Как называются скачки на лошадях?
Как называются цветы как большие ромашки?
Как называются цветы которые закрываются на ночь?

Как быстрее всего удалить большие папки?

Как быстро удалить большие папки в Windows

  1. Нажмите на клавишу Windows, введите cmd.exe и выберите результат для загрузки командной строки.
  2. Перейдите к папке, которую вы хотите удалить (со всеми ее файлами и вложенными папками). …
  3. Команда DEL / F / Q / S *. …
  4. Затем используйте cd .. для перехода к родительской папке.

18 юл. 2017 г.

Вы можете попробовать использовать CMD (командную строку) для принудительного удаления файла или папки с компьютера с Windows 10, SD-карты, USB-накопителя, внешнего жесткого диска и т. Д.

Принудительное удаление файла или папки в Windows 10 с помощью CMD

  1. Используйте команду «DEL», чтобы принудительно удалить файл в CMD:…
  2. Нажмите Shift + Delete, чтобы принудительно удалить файл или папку.

23 мар. 2021 г.

Как удалить сразу много файлов?

К счастью, Windows упрощает одновременный выбор и удаление нескольких файлов.

  1. Щелкните первый файл, который хотите удалить, чтобы выбрать его.
  2. Удерживайте клавишу «CTRL» на клавиатуре.
  3. Щелкните другие файлы, которые вы хотите удалить, продолжая удерживать клавишу «CTRL». Это позволит выбрать сразу несколько файлов.

Как принудительно удалить папку в Windows?

Для этого сначала откройте меню «Пуск» (клавиша Windows), введите «выполнить» и нажмите «Ввод». В появившемся диалоговом окне введите cmd и снова нажмите Enter. В открытой командной строке введите del / f имя_файла, где имя_файла — это имя файла или файлов (вы можете указать несколько файлов, используя запятые), которые вы хотите удалить.

Как удалить папку с помощью командной строки?

Чтобы удалить каталог, просто используйте команду rmdir . Примечание. Любые каталоги, удаленные с помощью команды rmdir, восстановить нельзя.

Как удалить папку в Windows 10 запрещено?

Как удалить файл или папку с ошибкой «Доступ запрещен»

  1. Найдите файл, хранящийся на вашем жестком диске.
  2. Как только файл будет найден, щелкните его правой кнопкой мыши, выберите свойства и удалите (снимите отметку) все атрибуты файла или папки.
  3. Запишите расположение файла.
  4. Откройте окно командной строки. …
  5. Оставьте окно командной строки открытым, но закройте все другие открытые программы.

Как принудительно удалить папку?

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

  1. Нажмите кнопку «Пуск».
  2. Введите Taskmgr.
  3. В новом открывшемся окне на вкладке процесса найдите папку / программу, которую вы пытаетесь удалить.
  4. Щелкните его правой кнопкой мыши и завершите задачу.

Как удалить папку, которая не удаляется?

Метод 2. Удалите файл / папку с помощью командной строки.

  1. Нажмите клавиши Windows + R и введите cmd, чтобы открыть командную строку, или просто найдите командную строку в начале.
  2. В командной строке введите del и местоположение папки или файла, который вы хотите удалить, и нажмите «Enter» (например, del c: usersJohnDoeDesktoptext.

5 дня назад

Не удается удалить папку, которой больше нет?

Найдите проблемный файл или папку на своем компьютере, перейдя к ним в проводнике. Щелкните его правой кнопкой мыши и выберите в контекстном меню опцию «Добавить в архив». Когда откроется окно параметров архивирования, найдите параметр «Удалить файлы после архивирования» и убедитесь, что вы выбрали его.

Как выбрать все файлы для удаления?

Щелкните первый файл или папку, а затем нажмите и удерживайте клавишу Ctrl. Удерживая Ctrl, щелкните каждый из других файлов или папок, которые хотите выбрать.

Как удалить содержимое нескольких папок?

Конечно, вы можете открыть папку, нажать Ctrl-A, чтобы «выбрать все» файлы, а затем нажать клавишу «Удалить».

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

Самый быстрый способ сделать это: откройте командную строку, перейдите в папку, которую вы хотите удалить, и введите команду «rd / s / q». Все остальные параметры буферизируют файлы перед удалением. Команда RD (RMDIR) считывает имя файла и удаляет его, а при достижении имени папки погружается в эту папку и повторяется.

Как удалить папку, которую нельзя удалить?

Удаление папки, которую невозможно удалить

  1. Шаг 1. Откройте командную строку Windows. Чтобы удалить папку, нам нужно использовать командную строку. …
  2. Шаг 2: Расположение папки. Командная строка должна знать, где находится папка, поэтому щелкните ее правой кнопкой мыши, затем перейдите вниз и выберите свойства. …
  3. Шаг 3: Найдите папку.

Почему я не могу удалить старую Windows?

Windows. старую папку нельзя удалить напрямую, нажав клавишу удаления, и вы можете попробовать использовать инструмент очистки диска в Windows, чтобы удалить эту папку с вашего ПК:… Щелкните правой кнопкой мыши диск с установкой Windows и выберите «Свойства». Щелкните Очистка диска и выберите Очистить систему.

Как удалить файл, который не может быть найден в Windows 10?

Ответы (8) 

  1. Закройте все открытые программы и попробуйте снова удалить файл.
  2. Нажмите клавиши Windows + R и введите cmd, чтобы открыть командную строку.
  3. Введите cd C: pathtofile и нажмите Enter. …
  4. Тип . …
  5. Нажмите Ctrl + Shift + Esc, чтобы открыть диспетчер задач.
  6. Выберите файл. …
  7. Вернитесь в командную строку и введите.

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

Найти и удалить самые большие файлы в Windows

Это правда, что хотя на данный момент мы можем найти жесткие диски и SSD-накопители большой емкости по хорошей цене, но пространство заканчивается точно так же. На самом деле, в наше время все больше и больше пользователей не хватает места, когда речь идет о хранении всего, что они хотят на своих ПК. Это становится особенно очевидным, если мы интенсивно используем Интернет загрузки, например. Кроме того, мультимедийный контент, такой как фотографии или видео, становится все более высокого качества, поэтому он занимает больше места, чем раньше. Это то, что многие из вас наверняка видели из первых рук при загрузке фотографий и видео, которые мы держим на вашем мобильный , Например.

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

Содержание

  • Как управлять дисковым пространством
  • Удалить большие файлы из Проводника
  • Найти большой контент из настроек
  • Управление большими файлами с помощью сторонних приложений
    • TreeSize
    • WinDirStat

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

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

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

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

Удалить большие файлы из Проводника

На этом этапе, чтобы добиться того, что мы обсуждали, первое, что мы сделаем, это откроем окно проводника Windows. Это можно сделать, например, с помощью Win + E комбинация клавиш.

Проводник Windows

Затем мы должны найти себя на диске или диске, где мы хотим найти те большие файлы, о которых мы здесь говорим. Вы должны знать, что сам Explorer позволяет нам фильтровать эти поиски, давайте посмотрим, как это сделать. Сначала мы можем нажать на поле поиска этой функции. Затем, как только вы ввели поисковый запрос, который хотите выполнить, нажмите на дату рядом с размер раздел. Тогда мы уже можем выбирать между любым из вариантов, которые появляются здесь. В частности, мы собираемся найти Крошечный, Маленький, Средний или Не указано.

Исследователь Таманьо Бускедас

Другой вариант, который мы можем использовать, это нажать на поле поиска. Затем в пределах Поиск На вкладке, которая отображается в верхней части проводника, в разделе «Размер» отображается раскрывающийся список, в котором можно выбрать параметры «Пустой», «Маленький», «Маленький», «Средний», «Большой», «Огромный» или «Гигантский». Таким образом, мы сможем уточнить поиск по размеру, который мы хотим, в зависимости от потребностей каждого случая.

Herramientas de Búsqueda

Но мы также можем пойти дальше в этом отношении, указав размер вручную. Для этого мы просто указываем размер термина, а затем условие фильтрации, которое мы хотим применить. Чтобы дать вам представление о том, о чем мы говорим, если, например, мы хотим найти файлы размером более 600 мегабайт, нам нужно будет указать размер:> 600 МБ. В тот момент Windows Explorer Сам отфильтрует все файлы и покажет нам только те, которые занимают более 600 мегабайт.

Фильтр Таманьо

Найти большой контент из настроек

Еще один эффективный способ, который мы можем использовать для поиска папок, файлов и приложений, которые занимают больше всего места в Windows, — это Настройки. Мы получаем доступ к этому разделу из Win + I комбинация клавиш. Затем мы находимся в разделе «Система / Хранилище», и однажды здесь мы увидим экран с различными вариантами. Здесь нас интересует тот, который указывает пространство, занимаемое в C :.

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

Приложения и функции

Откроется этот раздел, в котором перечислены все установленные приложения и объем используемого дискового пространства. Таким образом, мы можем получить представление о том, что это не занимает много времени и что мы не можем использовать. Мы также должны помнить, что каждая из других категорий выводит нас на разные экраны, в зависимости от того, что мы выбираем. Например, при выборе других данных такие категории as Фотографии , он перенесет нас в папку «Системные образы», ​​чтобы мы могли увидеть, что она занимает в целом.

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

Временные файлы

Управление большими файлами с помощью сторонних приложений

TreeSize

Все, что мы покажем вам, — это возможность управлять этими большими файлами на дисках, Windows сам. Но у нас также есть возможность использовать внешние приложения для всего этого, как в случае TreeSize. Это очень полезное мощное решение для всего этого, которое позволяет нам сразу увидеть файлы и папки, которые используют наиболее пространство , Мы можем скачать его с эту ссылку .

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

Treesize интерфаз

WinDirStat

С другой стороны, мы находим другое похожее решение, чтобы увидеть, что именно тратит больше всего места на наших жестких дисках. Это WinDirStat , приложение, которое вы можете скачать по этой ссылке (https://windirstat.net/). В частности, мы ссылаемся на решение такого типа, которое является очень графическим и привлекательным, а также бесплатным, что дает нам возможность анализировать то, что занимает наши дисководы больше всего.

WinDirStat

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

Так как же удалить миллионы файлов из одной папки?

Феерическая

расстановка точек над i в вопросе удаления файлов из переполненной директории.

Прочитал статью Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки и очень удивился. Неужели в стандартном инструментарии Linux нет простых средств для работы с переполненными директориями и необходимо прибегать к столь низкоуровневым способам, как вызов getdents() напрямую.

Для тех, кто не в курсе проблемы, краткое описание: если вы случайно создали в одной директории огромное количество файлов без иерархии — т.е. от 5 млн файлов, лежащих в одной единственной плоской директории, то быстро удалить их не получится. Кроме того, не все утилиты в linux могут это сделать в принципе — либо будут сильно нагружать процессор/HDD, либо займут очень много памяти.

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

Подготовка

Так как создавать переполненную директорию на своём HDD рабочего компьютера, потом мучиться с её удалением ну никак не хочется, создадим виртуальную ФС в отдельном файле и примонтируем её через loop-устройство. К счастью, в Linux с этим всё просто.

Создаём пустой файл размером 200Гб

#!python
f = open("sparse", "w")
f.seek(1024 * 1024 * 1024 * 200)
f.write("")

Многие советуют использовать для этого утилиту dd, например dd if=/dev/zero of=disk-image bs=1M count=1M, но это работает несравнимо медленнее, а результат, как я понимаю, одинаковый.

Форматируем файл в ext4 и монтируем его как файловую систему

mkfs -t ext4 -q sparse  # TODO: less FS size, but change -N option
sudo mount sparse /mnt
mkdir /mnt/test_dir

К сожалению, я узнал об опции -N команды mkfs.ext4 уже после экспериментов. Она позволяет увеличить лимит на количество inode на FS, не увеличивая размер файла образа. Но, с другой стороны, стандартные настройки — ближе к реальным условиям.

Создаем множество пустых файлов (будет работать несколько часов)

#!python
for i in xrange(0, 13107300):
    f = open("/mnt/test_dir/{0}_{0}_{0}_{0}".format(i), "w")
    f.close()
    if i % 10000 == 0:
        print i

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

Проверяем, что все айноды на ФС исчерпаны.

$ df -i
/dev/loop0      13107200      13107200     38517           100% /mnt

Размер файла директории ~360Мб

$ ls -lh /mnt/
drwxrwxr-x 2 seriy seriy 358M нояб.  1 03:11 test_dir

Теперь попробуем удалить эту директорию со всем её содержимым различными способами.

Тесты

После каждого теста сбрасываем кеш файловой системы
sudo sh -c 'sync && echo 1 > /proc/sys/vm/drop_caches'
для того чтобы не занять быстро всю память и сравнивать скорость удаления в одинаковых условиях.

Удаление через rm -r

$ rm -r /mnt/test_dir/
Под strace несколько раз подряд (!!!) вызывает getdents(), затем очень много вызывает unlinkat() и так в цикле. Занял 30Мб RAM, не растет.
Удаляет содержимое успешно.

iotop
 7664 be/4 seriy      72.70 M/s    0.00 B/s  0.00 % 93.15 % rm -r /mnt/test_dir/
 5919 be/0 root       80.77 M/s   16.48 M/s  0.00 % 80.68 % [loop0]

Т.е. удалять переполненные директории с помощью rm -r /путь/до/директории вполне нормально.

Удаление через rm ./*

$ rm /mnt/test_dir/*
Запускает дочерний процесс шелла, который дорос до 600Мб, прибил по ^C. Ничего не удалил.
Очевидно, что glob по звёздочке обрабатывается самим шеллом, накапливается в памяти и передается команде rm после того как считается директория целиком.

Удаление через find -exec

$ find /mnt/test_dir/ -type f -exec rm -v {} ;
Под strace вызывает только getdents(). процесс find вырос до 600Мб, прибил по ^C. Ничего не удалил.
find действует так же, как и * в шелле — сперва строит полный список в памяти.

Удаление через find -delete

$ find /mnt/test_dir/ -type f -delete
Вырос до 600Мб, прибил по ^C. Ничего не удалил.
Аналогично предыдущей команде. И это крайне удивительно! На эту команду я возлагал надежду изначально.

Удаление через ls -f и xargs

$ cd /mnt/test_dir/ ; ls -f . | xargs -n 100 rm
параметр -f говорит, что не нужно сортировать список файлов.
Создает такую иерархию процессов:

 | - ls 212Кб
 | - xargs 108Кб
    | - rm 130Кб # pid у rm постоянно меняется

Удаляет успешно.

iotop  # сильно скачет
 5919 be/0 root        5.87 M/s    6.28 M/s  0.00 % 89.15 % [loop0]

ls -f в данной ситуации ведет себя адекватнее, чем find и не накапливает список файлов в памяти без необходимости. ls без параметров (как и find) — считывает список файлов в память целиком. Очевидно, для сортировки. Но этот способ плох тем, что постоянно вызывает rm, чем создается дополнительный оверхед.
Из этого вытекает ещё один способ — можно вывод ls -f перенаправить в файл и затем удалить содержимое директории по этому списку.

Удаление через perl readdir

$ perl -e 'chdir "/mnt/test_dir/" or die; opendir D, "."; while ($n = readdir D) { unlink $n }' (взял здесь)
Под strace один раз вызывает getdents(), потом много раз unlink() и так в цикле. Занял 380Кб памяти, не растет.
Удаляет успешно.

iotop
 7591 be/4 seriy      13.74 M/s    0.00 B/s  0.00 % 98.95 % perl -e chdi...
 5919 be/0 root       11.18 M/s 1438.88 K/s  0.00 % 93.85 % [loop0]

Получается, что использование readdir вполне возможно?

Удаление через программу на C readdir + unlink

//file: cleandir.c
#include <dirent.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
    struct dirent *entry;
    DIR *dp;
    chdir("/mnt/test_dir");
    dp = opendir(".");
    while( (entry = readdir(dp)) != NULL ) {
        if ( strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..") ){
            unlink(entry->d_name);  // maybe unlinkat ?
        }
    }
}

$ gcc -o cleandir cleandir.c
$ ./cleandir
Под strace один раз вызывает getdents(), потом много раз unlink() и так в цикле. Занял 128Кб памяти, не растет.
Удаляет успешно.

iotop:
 7565 be/4 seriy      11.70 M/s    0.00 B/s  0.00 % 98.88 % ./cleandir
 5919 be/0 root       12.97 M/s 1079.23 K/s  0.00 % 92.42 % [loop0]

Опять — же, убеждаемся, что использовать readdir — вполне нормально, если не накапливать результаты в памяти, а удалять файлы сразу.

Выводы

  • Использовать комбинацию функций readdir() + unlink() для удаления директорий, содержащих миллионы файлов, можно.
  • На практике лучше использовать rm -r /my/dir/, т.к. он поступает более умно — сперва строит относительно небольшой список файлов в памяти, вызывая несколько раз readdir(), а затем удаляет файлы по этому списку. Это позволяет более плавно чередовать нагрузку на чтение и запись, чем повышает скорость удаления.
  • Для снижения нагрузки на систему использовать в комбинации с nice или ionice. Либо использовать скриптовые языки и вставлять небольшие sleep() в циклах. Либо генерировать список файлов через ls -l и пропускать его через замедляющий пайп.
  • Не верить всему, что пишут в интернетах, конечно же! В различных блогах часто обсуждают эту проблему, и регулярно подсказывают неработающие решения.

P.S.: К сожалению, не нашел в Python функции для итеративного чтения директории, чему крайне удивлён; os.listdir() и os.walk() читают директорию целиком. Даже в PHP есть readdir.

  • Remove From My Forums

 locked

Сверхмедленное удаление большого количества файлов

  • Вопрос

  • Windows Server 2008 R2. raid1 hdd WD RE

    Понадобилось удалить папку с большим количеством файлов (11.1 млн. файлов в 2.2 млн. папках)

    Сначала использовал привычный Shift-Del, но за полчаса не дождался даже окончания «Preparing to delete».

    Погуглив на эту тему, нашел, что вроде бы запущенная из командной строки команда RD /S /Q удаляет намного быстрее.

    Увы, это оказалось не так. Удаление этой командой заняло 7 часов!!!  Т.е. всего лишь 440 файлов/сек. (попутно удаление съело всю оперативную память на сервере 8ГБ, и началось использование файла подкачки).

    Казалось бы, достаточно просто удалить инфу из Mft, но Монитор ресурсов показывал, что помимо обращения к Mft, шло индивидуальное обращение (read) к каждому удаляемому файлу! Как итог скорость дисков оказалась узким местом.

    Могут ли специалисты дать комментарии по этому поводу? Почему такой странный сверхмедленный алгоритм удаления? Исправлена ли эта багофича в Windows Server 2012R2?

Ответы

  • Выключите антивирус на томе

    Выключите индексацию на томе

    Выключите обновление даты доступа на томе disablelastaccess

    fsutil behavior set disablelastaccess 1

    Используйте
    двойной проход:

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


    Сазонов Илья http://isazonov.wordpress.com/

    • Помечено в качестве ответа

      17 декабря 2014 г. 8:03

    • Помечено в качестве ответа
      Petko KrushevMicrosoft contingent staff
      17 декабря 2014 г. 8:03
  • костыли это всегда хорошо.

    но может разобраться в корне проблемы?

    Не стоит ожидать, что обычный GUI разработан для работы с миллионами файлов: типовой пользователь работает с десятками, сотнями, может тысячами файлов, но никак не с миллионами.

    Сама NTFS также оптимизирована для определенного сегмента. С учётом роста файловых хранилищ у широкого потребителя Microsoft разработала новую файловую систему ReFS, которая предназначена для работы с большими хранилищами
    и огромным количеством файлов. Это файловая система должна заменить в будущем NTFS, которая создана 20 лет назад, когда о таких объемах можно было только мечтать.

    Тем не менее, как было сказано, NTFS позволяет некоторую оптимизацию, что позволяет ощутимо расширить ее возможности.

    Кстати вы можете не удалять кучу файлов, а просто отформатировать раздел за несколько секунд: если на этом разделе есть несколько процентов нужной информации, то переносите ее, форматируете раздел и возвращаете обратно нужное.


    Сазонов Илья http://isazonov.wordpress.com/

    • Помечено в качестве ответа
      Petko KrushevMicrosoft contingent staff
      17 декабря 2014 г. 8:03

Понравилась статья? Поделить с друзьями:
  • Windows как создать iso файл с помощью ultraiso
  • Windows как применить path без перезагрузки
  • Windows как посмотреть переменные окружения командной
  • Windows как посмотреть дату установки системы
  • Windows как поменять дату создания файла