Быстро удалить папку с более чем 30000 изображений в Android - PullRequest
6 голосов
/ 17 марта 2012

Я должен удалить папку с более чем 30000 изображений.У меня есть файл .nomedia для предотвращения сканирования.Пытаясь удалить все файлы, я должен проверить имя файла для каждого файла.Если я пропущу эту проверку - файл .nomedia будет удален.Если это произойдет до изображения - это приведет к большой потере производительности.Есть идеи, как решить эту проблему?

ОБНОВЛЕНИЕ:

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

Обновление:

На самом деле тест показывает мне такой результат: проверка имени делает удаление примерно на 50% медленнее.Проблема не в проверочном коде, а в папке сканирования системы: (

Ответы [ 2 ]

1 голос
/ 11 апреля 2012

Мое решение на данный момент:

  1. Переименование папки с изображениями.
  2. Создание новой папки для изображений с файлом «.nomedia» внутри.
  3. Запуск фонапоток для удаления старой папки.

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

0 голосов
/ 17 марта 2012

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

".nomedia".equals(file.getName());

Стоимость фактического удаления (file.delete()) должна быть на порядки больше, чем сравнение строк.

Вы измерили фактическое время проверки имен файлов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...