Можно ли сбросить дату последнего изменения файла Android? - PullRequest
1 голос
/ 17 ноября 2011

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

  1. дата последнего изменения файла
  2. запрос к базе данных, который показывает недавно просмотренные файлы.

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

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

Ответы [ 2 ]

5 голосов
/ 05 октября 2012

Как сказал Ник, метод setLastModified() в классе File может не всегда работать в зависимости от того, где вы находитесь в файловой системе Android.Если на SD-карте некоторые устройства будут возвращать ложное значение от этого вызова и, следовательно, не изменять дату.

Подробнее об этом здесь:

http://code.google.com/p/android/issues/detail?id=1992

http://code.google.com/p/android/issues/detail?id=1699

Плюс какой-то другой поток стекового потока здесь:

file.lastModified () никогда не соответствует параметру file.setLastModified ()

1 голос
/ 17 ноября 2011

setLastModified() - это стандартный метод для любого объекта Java File, который можно использовать для обновления этого значения.

Документация SDK .

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