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; } }// 死循环体 }}