java - 获取按上次修改排序的目录中的文件?

标签 java java-7

<分区>

在具有新 I/O API 的 Java 7 中,是否有一种简单的方法可以按上次修改日期列出目录内容?基本上我只需要获取最长时间未修改的文件(按最后修改的升序排序,取第一个文件名)。

最佳答案

没有真正的“简单方法”来做到这一点,但有可能:

List<Path> files = new ArrayList<>();
try(DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
    for(Path p : stream) {
        files.add(p);
    }
}

Collections.sort(files, new Comparator<Path>() {
    public int compare(Path o1, Path o2) {
        try {
            return Files.getLastModifiedTime(o1).compareTo(Files.getLastModifiedTime(o2));
        } catch (IOException e) {
            // handle exception
        }
    }
});

这会将文件排序为最早修改的文件。 DirectoryStream 不会遍历子目录。

关于java - 获取按上次修改排序的目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12253908/

相关文章:

java - Java 泛型何时在运行时使用转换?

java - 如何为用户定义的输入提供转义序列

java - Java中的Turn机制

java - JPanel不适应任何变化

java - 什么以及为什么是 Java 6 和 Java 7?

java - ubuntu : Could not load the property file 'output_xml.properties' for output method 'xml' 上的 openjdk-1.7.0_55

java - 难以理解多维数组

java - Java 中的通用返回类型

java - 锁可以自动关闭吗?

Java : How to return intermediate results from a Thread