看到的问题是,在Java中,我们可以通过filename.lastModified()获得lastmodified日期。但是在Windows中,正在发生的事情是,只要修改了文件,就只会修改该文件的日期和时间,而不是整个文件夹的日期和时间。所以我想知道什么时候最后一次使用Java在该文件夹中修改了一个文件?

最佳答案

在目录的files中找到最新(最大)的lastModified(),或者如果没有使用目录本身,请执行以下操作:

public static Date getLastModified(File directory) {
    File[] files = directory.listFiles();
    if (files.length == 0) return new Date(directory.lastModified());
    Arrays.sort(files, new Comparator<File>() {
        public int compare(File o1, File o2) {
            return new Long(o2.lastModified()).compareTo(o1.lastModified()); //latest 1st
        }});
    return new Date(files[0].lastModified());
}

仅供引用,此代码已经过测试(并且有效)。

关于java - 如何在Java中获取目录的最后修改日期和时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12249155/

10-09 23:02