第一步:定义一个类,实现timerTask接口
package com.waysoft.modules.business.file.client.download.service;
import java.io.File;import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TimeCleaningFile extends TimerTask {
private String file_path = null;
public TimeCleaningFile(String file_path){
this.file_path = file_path;
}
// 递归删除文件
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
// 递归删除目录中的子目录下
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
// 目录此时为空,可以删除
return dir.delete();
}
private Timer timer = new Timer();
public void start() {
// 每隔5小时删除一次
timer.scheduleAtFixedRate(this, new Date(), 1000 * 60 * 60 * 5);
}
public void run() {
System.out.println("-----------------开始监听-----------------");
deleteDir(new File(file_path));
System.out.println("-----------------监听结束-----------------");
}
}
第二步:创建监听器,在contextInitialized里写入功能方法
public final class WebContextListener implements ServletContextListener{
public void contextInitialized(ServletContextEvent sce) {
// 监听删除临时文件
new TimeCleaningFile(SystemConfig.getProjectPath() + "//temp").start();
}
}
第三步:在web.xml中配置监听器
<listener>
<listener-class>
com.waysoft.global.listener.WebContextListener
</listener-class>
</listener>