gpt4 book ai didi

java - 是否需要在/etc/fstab中启用 "atime"才能在java中获取正确的上次访问时间?

转载 作者:太空狗 更新时间:2023-10-29 11:45:58 25 4
gpt4 key购买 nike

我可以使用下面的代码获取上次访问时间。

public Date getLastAccessTime(String filePath) throws IOException {
File f = new File(filePath);
BasicFileAttributes basicFileAttributes = Files.getFileAttributeView(
f.toPath(),
BasicFileAttributeView.class).readAttributes();
Date accessTime = new Date(basicFileAttributes.lastAccessTime().toMillis());
return accessTime;
}

但在我的 linux 系统中,它在/etc/fstab 中配置为“relatime”。

是否有必要在/etc/fstab 中启用“atime”以获得准确的上次访问时间?

最佳答案

Is it necessary to enable "atime" in /etc/fstab to get exact Last Accessed Time?

简短回答:是

在 Linux 上,JDK 使用 sys_stat64() 系统调用来检索有关文件的信息。如果内核在访问文件时不更新 st_atime 字段,则 Java 无法获得此信息。

Linux 内核关于 st_atime 更新策略的默认行为已被 Linux 2.6.30 更改。 relatime 现在是默认行为。这意味着 st_atime 仅在 st_mtimest_ctime 更新时更新,而不是在访问文件时更新。如果您想要 行为,您可以使用strictatime。有关更多信息,请参阅安装手册页(搜索 atimenoatimerelatimestrictatime)。

关于java - 是否需要在/etc/fstab中启用 "atime"才能在java中获取正确的上次访问时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com