在 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/

10-11 00:14