自动删除历史备份的dmp文件

    技术2022-05-19  25

    import java.io.File;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.*;import java.util.Map;public class DelteFile {    public static void main(String[] args){     String path =System.getProperty("user.dir");  long lastExecDate = 0l;  long intDiv =  1000*60*60*24;     while(true){      try {    //得到当前时间    Date d = new Date();    long nowDate = d.getTime();

        System.out.println(nowDate - lastExecDate);

        if ((nowDate - lastExecDate) > intDiv)    {     //如果比起上次执行超过一天了

         //判断文件的修改时间,是否包括前三天的,且文件大小 大于零!

         File dic = new File(path);          File[] files = dic.listFiles();//得到所有的文件名字     int okfilecount = 0;     ArrayList al = new ArrayList();

         //按时间排序

         long okFile[] = new long[3];

              File minFile = null;     //找三个日期最大的文件.     for (int j=0; j < 3 ; j++ )     {      int indexFile = -1;  //保存文件的序号      long lFileTime =0l;      for (int i=0;i<files.length ;i++ )      {       if (files[i] != null )       {        if (files[i].isFile())        {         if (files[i].getName().indexOf("dmp")  > 1)         {          long lNowFileTime = (new Date(files[i].lastModified())).getTime();          if (lNowFileTime > lFileTime  && files[i].length() > 10 )          {

               minFile = files[i];           lFileTime = lNowFileTime;            indexFile = i;          }          }         else         {          System.out.println("保留:" + files[i].getName());          files[i] = null;         }        }       }      }       if (indexFile != -1)      {       System.out.println("保留:" + files[indexFile].getName());       files[indexFile] = null;      }     }

         for (int i=0;i<files.length ;i++ )     {      if (files[i] != null && files[i].isFile())      {       //删除文件       System.out.println("删除文件" + files[i].getName());       files[i].delete();      }     } 

         //更新本次删除文件的时间     lastExecDate = nowDate;    }//if 时间超过1天了    try    {     Thread.sleep(30000);    }    catch (Exception e) {     e.printStackTrace();    }   }    catch (Exception e) {    e.printStackTrace();    return;   }     }// 死循环体    }} 


    最新回复(0)