业务需求:
有时候我们在上传图片到指定目录后,长时间会造成有些图片已经没有任何作用了,我们就可以做一个定时删除指定目录下的文件,去删除那些图片
代码:
package com.example;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.util.Calendar;
import java.util.Date;
@Slf4j
public class DeleteFilesSimpe {
public static void main(String[] args) {
String filePath = "E:/Test";
moveFileToReady(filePath);
}
public static Integer moveFileToReady(String fromDir){
File srcDir = new File(fromDir);
if (!srcDir.exists()) {
return 0;
}
File[] files = srcDir.listFiles();
if (files == null || files.length <= 0) {
return 0;
}
int l = 0;
Date today = new Date();
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
try {
File ff = files[i];
long time=ff.lastModified();
Calendar cal=Calendar.getInstance();
cal.setTimeInMillis(time);
Date lastModified = cal.getTime();
long days = getDistDates(today, lastModified);
if(days>=3){
files[i].delete();
l++;
}
} catch (Exception e) {
log.info("删除文件失败");
}
}
}
return l;
}
/**
* @param startDate
* @param endDate
* @return
*/
public static long getDistDates(Date startDate,Date endDate)
{
long totalDate = 0;
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
long timestart = calendar.getTimeInMillis();
calendar.setTime(endDate);
long timeend = calendar.getTimeInMillis();
totalDate = Math.abs((timeend - timestart))/(1000*60*60*24);
return totalDate;
}
}
上面的代码是一个main方法demo,我们如果需要用到定时任务,自己去创建定时任务,然后调用方法就行了