java中是否有办法设置访问时间而不设置日期修改时间?
这实际上是一个触摸-a命令。
文件中的setLastModified方法更新访问时间和修改日期。
我们目前正在使用java 6.移动到7并不是不可能的。
答案 0 :(得分:4)
您可以使用Java 7中的Files.setAttribute()
:
FileTime fileTime = FileTime.fromMillis(millis);
Files.setAttribute(path, "lastAccessTime", fileTime);
字符"lastAccessTime"
可以在BasicFileAttributeView
的说明中找到,它还提供了另一种设置此属性的方法(以及Files.getFileAttributeView()
):
Files.getFileAttributeView(path, BasicFileAttributeView.class).setTimes(null, fileTime, null);
我不知道任何适用于Java 6或更早版本的纯Java方法。
答案 1 :(得分:1)
我想在文件上打开一个输入流应该修改它的访问时间。但我不知道在Java 6中直接修改此属性的任何API。
答案 2 :(得分:0)
有一个私有的sun API可以检查文件(How to prevent ShellFolder.getFolderColumns(...) from crashing a lot)的访问时间,但无法从我发现的内容中设置它。虽然每次打开文件时都应该更新访问时间,但也许可以尝试用Java打开它。
您可以检查旧的JDIC项目是否具有选项:http://javadesktop.org/articles/jdic/index.html
或者这个图书馆:http://www.teamdev.com/jxfilewatcher/
否则,您可能必须查找要支持的操作系统的控制台命令并从Java调用。