作爲這個問題的一個後續 - 由於它與創建時間有關,並討論了通過新的nio類獲取它 - 現在看來,在JDK7的實現中,你運氣不好。附錄:在OpenJDK7中也有相同的行爲。
在Unix文件系統上,您無法檢索創建時間戳,只需獲取上次修改時間的副本。很傷心,但不幸的是。我不確定這是爲什麼,但代碼專門做到這一點,如下所示。
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.*;
public class TestFA {
static void getAttributes(String pathStr) throws IOException {
Path p = Paths.get(pathStr);
BasicFileAttributes view
= Files.getFileAttributeView(p, BasicFileAttributeView.class)
.readAttributes();
System.out.println(view.creationTime()+" is the same as "+view.lastModifiedTime());
}
public static void main(String[] args) throws IOException {
for (String s : args) {
getAttributes(s);
}
}
}
好的,經過對文件系統的更多討論和調查之後,我們已經決定使用上次修改是足夠的,因爲它可能必須與創建日期一起檢查。兩者都需要檢查以確定一箇舊文件是否最近被修改並因此仍然是活動的。所以,只需檢查過去最遠修改的文件即可。感謝所有的投入。順便說一句,我很樂意使用nio,但這裏的Linux風格不支持文件創建。 – Todd 2010-04-27 20:07:56