在 Unix 中,上次更改时间和上次修改时间之间存在差异。例如,当使用 stat 我可以得到:
Access: 2016-01-18 10:50:01.624303144 +0100
Modify: 2016-01-12 13:34:18.274639073 +0100
Change: 2016-01-15 13:13:52.881401711 +0100
当我用 Java 编程时,我可以很容易地获得最后修改时间。但是如何获得文件的最后更改时间?
最佳答案
设法找到了一个缓慢的解决方案。复制到这里以防将来有人遇到同样的问题。
//Get time since epoch for a file
private static long getLastChanged(final String fileName) {
try {
ProcessBuilder processBuilder = new ProcessBuilder("stat", fileName, "-c", "%Z");
Process process = processBuilder.start();
int errorCode = process.waitFor();
if (errorCode == 0) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
return Integer.parseInt(line);
}
} else {
System.out.println("Stat failed with error message: " + errorCode);
}
} catch (Exception e) {
System.out.println("Failed to do stat on file: " + e);
}
return 0;
}
关于java - 如何获取文件上次更改时间(Unix + Java),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34852515/