我正在为我们的软件编写一个清除功能,用于删除所有超过一个月未使用的图像文件。为此,我正在检查两件事:
- 文件的最后修改日期
- 对显示最近查看的文件的数据库的查询。
查询比文件检查慢得多。因此,理想情况下,我希望能够在第一次检查失败但通过第二次检查的任何文件上重置上次修改日期,以便(例如)一个古老但经常使用的文件列表不会逐渐增加处理管理系统的负载。
有没有办法做到这一点而不求助于粗糙的东西(甚至可能更慢),比如将每个文件重命名为临时标签,然后是本身?
我正在为我们的软件编写一个清除功能,用于删除所有超过一个月未使用的图像文件。为此,我正在检查两件事:
查询比文件检查慢得多。因此,理想情况下,我希望能够在第一次检查失败但通过第二次检查的任何文件上重置上次修改日期,以便(例如)一个古老但经常使用的文件列表不会逐渐增加处理管理系统的负载。
有没有办法做到这一点而不求助于粗糙的东西(甚至可能更慢),比如将每个文件重命名为临时标签,然后是本身?
正如 Nik 所说,类setLastModified()
上的方法File
可能并不总是有效,具体取决于您在 Android 文件系统中的位置。如果在 SD 卡上,则某些设备将从该调用返回 false,因此不会更改日期。
这里有更多关于它的细节:
http://code.google.com/p/android/issues/detail?id=1992
http://code.google.com/p/android/issues/detail?id=1699
加上其他一些stackoverflow线程:
setLastModified()
File
是可用于更新此值的任何 Java 对象的标准方法。