如何在java中获取目录的最后修改日期和时间 [英] How to get the last modified date and time of a directory in java

查看:344
本文介绍了如何在java中获取目录的最后修改日期和时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题是,在Java中,我们可以通过 filename.lastModified()获取 lastmodified 日期。但在Windows中,发生的情况是每当文件被修改时,只有该文件的日期和时间被修改,而不是整个文件夹的修改。所以我想知道什么时候是最后一次,甚至一个文件被修改在该文件夹中,使用Java?

解决方案

找到在目录的 lastModified() File.html#listFiles%28%29> files ,或者如果没有使用该目录本身:

  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()); //最新的第一个
}});
返回新的日期(文件[0] .lastModified());





仅供参考此代码已经过测试(并且正常)。


See, the problem is that in Java, we can get lastmodified date by filename.lastModified(). But in Windows, what is happening is that whenever a file is modifed, only that file's date and time are getting modified, not the whole folder's. So I want to know when was the last time even one single file was modified in that folder, using Java?

解决方案

Find the latest (largest) lastModified() in the directory's files, or if there are none use the directory's itself:

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());
}

FYI this code has been tested (and it works).

这篇关于如何在java中获取目录的最后修改日期和时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆