您的位置:首页 > 其它

定时删除文件

2016-12-29 09:29 405 查看
第一步:定义一个类,实现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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  定时删除 timerTask