项目遇到临时文件问题,临时文件会在服务器上保存一段时间,过期则删除。
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.AndFileFilter;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.FileFileFilter;
import org.apache.commons.io.filefilter.TrueFileFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.Date;
import java.util.Iterator;
/**
* 删除过期的文件
* @Author Cheng.Wei
* @Date 2018/10/30 23:36
*/
public class FileUtil {
private static final Logger log = LoggerFactory.getLogger(FileUtil.class);
/**
* 清理目录中过期的文件
* @param dirPath 文件路径
* @param ms 时间 /毫秒
*/
public static void timeout(String dirPath, long ms) {
// 该日期之前的文件
Date pointDate = new Date(System.currentTimeMillis() - ms);
// 文件过滤条件
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());
}
}