You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Apache FileUtils按创建日期对目录文件排序?

使用Apache FileUtils按文件创建日期排序PDF文件

可以借助Apache FileUtils获取指定目录下的PDF文件,再通过自定义排序逻辑实现按创建日期排序——FileUtils本身没有内置的按创建日期排序的API,需要手动处理。

补全后的完整代码如下:

public String[] getPDFFiles(String dir) throws IOException {
    File myDir = new File(dir);
    
    // 递归获取目录下所有PDF格式文件
    Collection<File> files = FileUtils.listFiles(myDir, 
           new String[] {"pdf", "PDF"}, true);
    
    // 将Collection转为List,方便排序操作
    List<File> fileList = new ArrayList<>(files);
    
    // 按文件创建日期升序排序
    fileList.sort((file1, file2) -> {
        try {
            // 通过Java NIO API获取文件创建时间
            FileTime creationTime1 = Files.getCreationTime(file1.toPath());
            FileTime creationTime2 = Files.getCreationTime(file2.toPath());
            return creationTime1.compareTo(creationTime2);
        } catch (IOException e) {
            // 若获取创建时间失败,改用修改时间作为兜底排序依据
            return Long.compare(file1.lastModified(), file2.lastModified());
        }
    });
    
    // 将排序后的文件转为绝对路径数组返回
    return fileList.stream().map(File::getAbsolutePath).toArray(String[]::new);
}

注意事项

  • Java标准库的File类没有直接提供获取创建日期的方法,需依赖Java 7及以上版本的NIO API(Files.getCreationTime())实现。
  • 若需要降序排序,只需将排序逻辑中的creationTime1.compareTo(creationTime2)改为creationTime2.compareTo(creationTime1)即可。
  • 当获取创建时间抛出异常时,代码中用文件的修改时间做了兜底处理,可根据实际需求调整异常逻辑。

内容的提问来源于stack exchange,提问作者Netrom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:32:39