gpt4 book ai didi

java - 如何使用 Java 获取目录中最旧的文件

转载 作者:行者123 更新时间:2023-11-30 05:42:58 28 4
gpt4 key购买 nike

有没有使用java获取目录中最旧的文件的方法?我有一个写入日志文件的目录,并且想在记录了 500 多个日志文件后删除日志文件(但只想删除最旧的日志文件)。

我能设想自己的唯一方法是:

  • 使用 File.listFiles() 方法获取文件列表
  • 循环遍历每个文件
  • 使用 File.lastModified() 存储最后修改日期,并与循环迭代中的 File 进行比较,保留最旧的 lastModified()

这种逻辑的不便之处在于,每次我想获取最旧的文件时,我都必须循环日志目录,但这似乎不是最有效的。

我期望 java.io.File 库有一个方法来获取目录中最旧的文件,但它似乎不存在,或者我还没有找到它。如果有一种方法可以获取目录中最旧的文件,或者有一种更方便的方法来编程解决方案,我很想知道。

谢谢

最佳答案

根据@Yoda 的评论,我想我会回答我自己的问题。

public static void main(String[] args) throws IOException {
File directory = new File("/logFiles");
purgeLogFiles(directory);
}

public void purgeLogFiles(File logDir){
File[] logFiles = logDir.listFiles();
long oldestDate = Long.MAX_VALUE;
File oldestFile = null;
if( logFiles != null && logFiles.length >499){
//delete oldest files after theres more than 500 log files
for(File f: logFiles){
if(f.lastModified() < oldestDate){
oldestDate = f.lastModified();
oldestFile = f;
}
}

if(oldestFile != null){
oldestFile.delete();
}
}
}

关于java - 如何使用 Java 获取目录中最旧的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55346895/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com