问题
I'm writing a purge function for our software that removes all image files that haven't been used in over a month. To do this, I am checking two things:
- the last-modified date of the file
- a query on a database that shows recently viewed files.
The query is much slower than the file check. So I would ideally like to be able to reset the last modified date on any files that fail the first check, but pass the second, so that (for example) a list of venerable but often-used files aren't gradually increasing the processing load of the management system.
Is there a way to do this without recourse to something crude (and possibly even slower), like renaming each file to a temporary label, then itself?
回答1:
setLastModified()
is a standard method on any Java File
object that you can use to update this value.
SDK Documentation.
回答2:
As Nik said the setLastModified()
method on the File
class may not always work depending where you are in the Android file system. If on the SD Card then some devices will return false from that call and thus not change the date.
There are more details about it here:
http://code.google.com/p/android/issues/detail?id=1992
http://code.google.com/p/android/issues/detail?id=1699
Plus some other stackoverflow thread here:
file.lastModified() is never what was set with file.setLastModified()
来源:https://stackoverflow.com/questions/8169165/is-it-possible-to-reset-the-last-modified-date-of-an-android-file