2011-08-31 36 views
2

java中有沒有設置訪問時間而不設置日期修改時間的方法?Java設置文件訪問日期

這實際上是一個觸摸-a命令。

File中的setLastModified方法更新訪問時間以及修改日期。

我們目前正在使用java 6.轉移到7不會出問題。

回答

4

可以使用Files.setAttribute()從Java 7:

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

我想在文件上打開一個輸入流應該修改它的訪問時間。但我不知道任何API在Java 6中直接修改此屬性。

0

有一個私人太陽API來檢查文件(How to prevent ShellFolder.getFolderColumns(...) from crashing a lot)上的訪問時間,但沒有辦法從我已經找到。雖然訪問時間應該在每次打開文件時更新,所以也許嘗試用Java打開它。

您可以檢查舊JDIC項目有以下選項:http://javadesktop.org/articles/jdic/index.html

或者這個庫:http://www.teamdev.com/jxfilewatcher/

否則,你可能要查找控制檯命令要支持和調用OS的Java的。