定时删除文件

来源:互联网 发布:淘宝秒杀有人抢到了吗 编辑:程序博客网 时间:2024/04/27 18:07

第一步:定义一个类,实现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>

0 0
原创粉丝点击