删除最后修改时间过期的文件
程序员文章站
2022-05-24 12:31:12
...
package org.mir.tam;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.Date;
import java.util.Iterator;
/**
* @ClassName BillFileUtil
* @Description: 删除最后修改时间过期的文件
* @Author Kevin_Tam
* @Date 2019/11/19
* @Version V1.0
**/
public class BillFileUtil {
private static final Logger log = LoggerFactory.getLogger(BillFileUtil.class);
//计算时间
private static long hour = 24;
private static long minute = 60;
private static long second = 60;
private static long mmcond = 1000;
/**
* 清理目录中过期的文件
* @param dirPath 文件路径
* @param day 时间 /多少天
*/
public static void timeout(String dirPath, int day) {
long thDay = day * hour * minute * second * mmcond;
// 该日期之前的文件
Date pointDate = new Date(System.currentTimeMillis() - thDay);
// 文件过滤条件
IOFileFilter timeFileFilter = FileFilterUtils.ageFileFilter(pointDate, true);
IOFileFilter fileFiles = new AndFileFilter(FileFileFilter.FILE, timeFileFilter);
File directory = new File(dirPath);
Iterator<File> itFile = FileUtils.iterateFiles(directory, fileFiles, TrueFileFilter.INSTANCE);
// 删除符合条件的文件
while (itFile.hasNext()) {
delete(itFile.next());
}
}
/**
* 删除
* @param file
*/
public static void delete(File file){
boolean result = file.delete();
if (result) {
log.info("删除: {} 成功", file.getAbsolutePath());
}else {
log.warn("删除: {} 失败", file.getAbsolutePath());
}
}
public static void main(String[] args) {
int thDay = 8;//8天之前的
//linux服务器上请修改/root/etc/...格式
String filePath = "C:\\Users\\2019-11";
timeout(filePath, thDay);
}
}
本文主要在@dhweicheng的文章
https://blog.csdn.net/dhweicheng/article/details/83552428
上修改得到自己想要的以多少天为时间单位入参
上一篇: 获取ftp上文件的最后修改时间
下一篇: 学习笔记-java判断文件的最后修改时间