使用场景
在项目中需求是定时需要清理服务器上超过7天的日期目录,以下是java代码递归删除日期目录。
package com.lk.mybatisplus.pojo;
import java.io.File;
/**
* Java 删除大于指定日期目录文件
*/
public class DemoFile {
private final static String dirPathDel = "F:\\testfile"; //要清理的文件目录文件夹
public static void main(String[] args) {
File file = new File(dirPathDel);
if(file.exists()) { //文件或文件夹是否存在
if(file.isDirectory()) { //判断是不是目录
info(file);
}
}
}
public static void info(File file) {
//得到文件里面全部的文件及文件夹
File[] files = file.listFiles();
//遍历files里面的全部文件及文件夹
for(File f : files) {
//得到绝对路径下的文件及文件夹
File absFile = f.getAbsoluteFile();
//计算时间
long day = 7;
long hour = 24;
long minute = 60;
long second = 60;
long mmcond = 1000;
long currTime = System.currentTimeMillis(); //当前时间
long lastTime = absFile.lastModified(); //文件被最后一次修改的时间
//时间差
long diffen = currTime - lastTime;
// 定义指定天数删除时间
long thDay = day * hour * minute * second * mmcond;
if(diffen > 1000 * 60 * 5) { // 测试大于3分钟文件夹删除
absFile.delete();
if(absFile.isDirectory()) {
info(absFile);
absFile.delete();
}
}
}
}
}