【问题标题】:How to get the most recent file of a directory in Java如何在Java中获取目录的最新文件
【发布时间】:2016-03-09 09:34:24
【问题描述】:

假设我在系统(特别是 Ubuntu)上有一个特定目录,其中包含其他程序生成的备份或日志。如何在 Java 中以File 的形式定位并打开最近创建(或修改)的文件?

我需要一个依赖于文件名以时间戳或顺序名称命名的方案(如log1,log2, etc...)的解决方案。子目录将被忽略。

【问题讨论】:

    标签: java linux filesystems


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      这个问题的第二个答案应该做你想做的:

      stackoverflow.com/questions/2064694/how-do-i-find-the-last-modified-file-in-a-directory-in-java

       file.lastModified()
      

      为您提供特定文件上次修改的时间,您可以简单地获取每个文件的时间,然后循环查找“最新”时间。

      问题似乎与链接中提出的问题重复。

      【讨论】:

      • 是的,它是重复的。很遗憾,我无法在搜索中找到它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 2010-11-04
      • 2014-08-27
      • 1970-01-01
      相关资源
      最近更新 更多