【问题标题】:Is it possible to reset the last modified date of an Android file?是否可以重置 Android 文件的最后修改日期?
【发布时间】:2011-12-31 10:25:49
【问题描述】:

我正在为我们的软件编写一个清除功能,用于删除所有超过一个月未使用的图像文件。为此,我正在检查两件事:

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

查询比文件检查慢得多。因此,理想情况下,我希望能够在第一次检查失败但通过第二次检查的任何文件上重置上次修改日期,以便(例如)一个古老但经常使用的文件列表不会逐渐增加处理管理系统的负载。

有没有办法做到这一点而不求助于粗糙的东西(甚至可能更慢),比如将每个文件重命名为一个临时标签,然后是它本身?

【问题讨论】:

    标签: android file last-modified


    【解决方案1】:

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

    SDK Documentation.

    【讨论】:

    • 是的,但不幸的是,这在 Android 上相当不可靠。许多设备总是为此调用返回 false 并拒绝更新时间戳,除非以 root 身份运行:code.google.com/p/android/issues/detail?id=18624(仅举一个例子,还有其他几个设备执行此操作)。始终检查返回码!
    【解决方案2】:

    正如 Nik 所说,File 类上的 setLastModified() 方法可能并不总是有效,具体取决于您在 Android 文件系统中的位置。如果在 SD 卡上,则某些设备将从该调用返回 false,因此不会更改日期。

    这里有更多的细节:

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

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

    这里还有一些其他的stackoverflow线程:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      • 2020-05-12
      相关资源
      最近更新 更多