2011-11-17 107 views
1

我正在为我们的软件编写一个清除功能,删除所有在一个月内未使用过的图像文件。要做到这一点,我检查了两两件事:是否可以重置Android文件的上次修改日期?

  1. 文件
  2. ,显示最近查看的文件的数据库上查询的最后修改日期。

该查询比文件检查慢得多。因此,我希望能够重新设置第一次检查失败的任何文件的最后修改日期,但是要通过第二次修改日期,以便(例如)一个历史悠久但经常使用的文件列表不会逐渐增加处理管理系统的负载。

有没有办法做到这一点,而无需诉诸粗暴(甚至可能更慢),如将每个文件重命名为临时标签,然后自己?

回答

1

setLastModified()是任何可用于更新此值的Java File对象的标准方法。

SDK Documentation

+0

谢谢!这应该这样做:) –

+5

是的,但不幸的是,这在Android上是相当不可靠的。许多设备对于此调用总是返回false,并拒绝更新时间戳,除非以超级用户身份运行:https://code.google.com/p/android/issues/detail?id=18624(仅举一例,还有其他几种设备这是做到这一点)。总是检查返回码! –

5

正如Nik所说,File类中的setLastModified()方法可能无法始终工作,具体取决于您在Android文件系统中的位置。如果在SD卡上,则某些设备将从该呼叫返回错误,因此不会更改日期。

这里有更多的细节吧:

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

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

再加上一些其他的计算器线程在这里:

file.lastModified() is never what was set with file.setLastModified()

相关问题