当前位置: 首页 > 面试题库 >

file.lastModified()从来不是用file.setLastModified()设置的

程城
2023-03-14
问题内容

我的millis设置确实有问题,并在Nexus One上的Android 2.3.4上阅读。这是代码:

File fileFolder = new File(Environment.getExternalStorageDirectory(), appName + "/"
    + URLDecoder.decode(folder.getUrl()));
if (fileFolder != null && !fileFolder.exists()) {
  fileFolder.setLastModified(1310198774);
  fileFolder.mkdirs();
  fileFolder.setLastModified(1310198774);
}

if (fileFolder != null && fileFolder.exists()) {
  long l = fileFolder.lastModified();
}

在这个小测试中,我编写了1310198774,但是从lastModified()返回的结果是1310199771000。

即使我删除了结尾的“ 000”,也要相差几分钟。

我需要在网络服务和Android设备之间同步文件。上次修改毫秒是此服务发送的数据的一部分。我确实将millis设置为创建/复制的文件和文件夹,以检查文件/文件夹是否需要覆盖。

一切正常,但从文件系统返回的毫秒数与设置的值不同。

我很确定我的代码有问题-但是我找不到它。

提前谢谢了。J


问题答案:

因此,也许我缺少了一些东西,但上面的代码却出现了一些问题。您的特定问题可能是由于Android问题引起的(如@JB所述),但出于后代考虑,我想我会提供一个答案。

首先,File.setLastModified()花费时间以毫秒为单位。这是javadocs。您似乎想在几秒钟内设置它。因此,您的代码应类似于:

fileFolder.setLastModified(1310198774000L);

如javadocs中提到的,许多文件系统仅支持最后修改时间的秒粒度。因此,如果您需要在文件中看到相同的修改时间,则应该执行以下操作:

private void changeModificationFile(File file, long time) {
    // round the value down to the nearest second
    file.setLastModified((time / 1000) * 1000);
}


 类似资料:
  • 我正在尝试执行以下操作以避免稍后未选中的转换: 强制取消行上未选中得强制转换: 我如何做到这一点而不需要抑制?

  • 我很好奇,如果有人能分享一些关于为什么HttpServletRequest可能没有从Spring框架中设置特定属性的反馈。我们使用handlermapping.best_matching_pattern_attribute键控关闭的属性。(https://docs.spring.io/spring-framework/docs/4.3.4.release/javadoc-api/org/sprin

  • 问题内容: 我想平稳地向下滚动。我不想为此写函数-特别是如果jQuery已经有一个函数。 问题答案: 您可以只使用该属性,如下所示:

  • 问题内容: 我有一个更新视图,在这里我需要预选存储在数据库中的微调框的值。 我当时的想法是这样的,但是没有方法,所以我被困住了。 问题答案: 假设你的名称为,并且其中包含以下选项之一:“某个值”。 要查找和比较微调器中“某些值”的位置,请使用以下命令:

  • 问题内容: 我在装有Linux的嵌入式设备上工作。我想先使用DHCP客户端,但是如果DHCP服务器没有任何答案,我想设置静态默认IP。我想它应该不复杂,但是我还没有找到严格的答案。 我正在考虑2个解决方案(不幸的是,我可以在几天内对其进行测试): 我使用ifconfig设置静态IP,然后调用udhcpc。如果udhcpc无法获得新IP,则旧IP将保留。 我也可以先呼叫udhcpc,稍等片刻,然后检

  • 在Kubernetes文档中,它提到使用的缓存语义使得ImagePullPolicy非常高效。我想选择不同的ImagePullPolicy的原因是什么?