如何在Java中获取目录中最新的文件

3
假设我在一个系统上(特别是Ubuntu)有一个特定的目录,里面存储其他程序生成的备份或日志。如何在Java中查找并打开最近创建(或修改)的文件作为File
我需要一种解决方案,它不依赖于以时间戳或序列名称(如log1、log2等)命名文件。子目录将被忽略。
2个回答

1
你可以循环遍历目录中的文件并比较它们,找到最后修改的那个。
public File getLastModifiedFile(File directory) {
    File[] files = directory.listFiles();
   if (files.length == 0) return null;
    Arrays.sort(files, new Comparator<File>() {
        public int compare(File o1, File o2) {
            return new Long(o2.lastModified()).compareTo(o1.lastModified()); 
        }});
    return files[0];
}

获取最后修改时间:
 File file = getLastModifiedTime("C:\abcd");
 long lastModified = file != null ? file.lastModified() : -1 // -1 or whatever convention you want to infer no file exists

0

是的,这是一个重复的内容。不幸的是,我在搜索中没有找到它。 - Freya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接