指定周几,几点对某文件进行删除

来源:互联网 发布:拓扑图制作软件 mac 编辑:程序博客网 时间:2024/06/08 16:09

package com.hotvision.web.servlet;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;

import com.hotvision.utils.PropertiesUtil;

public class ElevatorServlet extends HttpServlet implements ServletContextListener,Runnable {
 
 /**
  *
  */
 private static final long serialVersionUID = 1L;
 
    private final int  ELEVATORSTARTDAY= 6;//指定星期几
    private final String ELEVATORSTARTIME = "00:05";
 private static ExecutorService executorService= Executors.newFixedThreadPool(10);
 //服务器停止的时候执行
 @Override
 public void contextDestroyed(ServletContextEvent arg0) {
  deleteOutFile();

 }
    //服务器启动的时候执行
 @Override
 public void contextInitialized(ServletContextEvent arg0) {
       start();
 }
 
 private void start(){
  executorService.submit(this);
 }
 //删除目录
 public static boolean deleteAllFile(String folderFullPath){
        boolean ret = false;
        File file = new File(folderFullPath);
        if(file.exists()){
      if(file.isDirectory()){
       File[] fileList = file.listFiles();
     for (int i = 0; i < fileList.length; i++) {
       String filePath = fileList[i].getPath();
       deleteAllFile(filePath);
     }
     }
             if(file.isFile()){
                file.delete();
             }
        }
        return ret;
    }
 
 //删除文件夹下的所有空文件夹,注意必须是空文件夹,该方法可能一次不能全部删除,需在调用时多次执行
    public static boolean deleteAllFullFolder(String folderFullPath){
        boolean ret = false;
        File file = new File(folderFullPath);
        if(file.exists()){
         File[] fileList=file.listFiles();
          if(fileList.length>0){
            for(int i=0;i<fileList.length;i++){          
             String filePath = fileList[i].getPath();
             deleteAllFullFolder(filePath);
            }
          }else{
            file.delete();
          }
        }
        return ret;
    }
    ////删除目录
   private static void deleteOutFile(){
    deleteAllFile(getSiteEnvValue());
    File file=new File(getSiteEnvValue());
    if(file.exists()){
      while(!file.delete()){
       deleteAllFullFolder(getSiteEnvValue());
      }
  }
   }
  
   private static String getSiteEnvValue(){
    return PropertiesUtil.getSiteEnvValue("deleteOutFile");
   }
  
   public static int getWeek(Date date){
     Calendar calendar = Calendar.getInstance();
     calendar.setTime(date);
     return calendar.get(Calendar.DAY_OF_WEEK);
   }
  
   public static String getCurrentDate(String format) {
       return (new SimpleDateFormat(format)).format(new Date());
   }
   //当前星期几
   private int getWeekDayString(){
     String weekString = "";
     final String dayNames[] = {"7","1","2","3","4","5","6"};
     Calendar calendar = Calendar.getInstance();
     Date date = new Date();
     calendar.setTime(date); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
     weekString = dayNames[dayOfWeek - 1];
     return Integer.parseInt(weekString);
   }
  
 @Override
 public void run() {
  while(true){
   try {
    Thread.sleep(5000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   if (ELEVATORSTARTDAY == getWeekDayString() && ELEVATORSTARTIME.compareTo(getCurrentDate("HH:mm")) > 0) {
    deleteOutFile();
   }
  }
  
 }
}

web.xml监听:

<listener>
     <listener-class>com.hotvision.web.servlet.ElevatorServlet</listener-class>
 </listener>

原创粉丝点击