java监听器定时删除服务器上的文件(二)

2014-11-24 07:48:21 · 作者: · 浏览: 1
File file = new File(path); deletefiles(file); } /** * 批量删除文件 * * @param folder */ public void deletefiles(File folder) { File[] files = folder.listFiles(); for (int i = 0; i < files.length; i++) { deleteFile(files[i]); } } /** * 删除文件 * * @param file */ private void deleteFile(File file) { try { if (file.isFile()) { // 删除符合条件的文件 if (canDeleteFile(file)) { if (file.delete()) { System.out.println("文件" + file.getName() + "删除成功!"); } else { System.out.println("文件" + file.getName() + "删除失败!此文件可能正在被使用"); } } else { } } else { System.out.println("没有可以删除的文件了"); } } catch (Exception e) { System.out.println("删除文件失败========"); e.printStackTrace(); } } /** * 判断文件是否能够被删除 */ private boolean canDeleteFile(File file) { Date fileDate = getfileDate(file); Date date = new Date(); long time = (date.getTime() - fileDate.getTime()) / 1000 / 60 - Integer.parseInt(RETENTION_TIME);// 当前时间与文件间隔的分钟 if (time > 0) { return true; } else { return false; } } /** * 获取文件最后的修改时间 * * @param file * @return */ private Date getfileDate(File file) { long modifiedTime = file.lastModified(); Date d = new Date(modifiedTime); return d; } /** * 格式化日期,没有用到 */ private String formatDate(Date date) { // SimpleDateFormat f=new SimpleDateFormat("yyyyMMdd hh:mm:ss");//12小时制 SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd HH:mm:ss");//24小时制 String formateDate = f.format(date); return formateDate; } /** * 删除文件夹 * * @param folder */ public void deleteFolder(File folder) { if (folder.isDirectory()) { File[] files = folder.listFiles(); for (int i = 0; i < files.length; i++) { deleteFolder(files[i]); } // 非当前目录,删除 if (!folder.getAbsolutePath().equalsIgnoreCase(path)) { // 只删除在30分钟前创建的文件 if (canDeleteFile(folder)) { if (folder.delete()) { System.out.println("文件夹" + folder.getName() + "删除成功!"); } else { System.out.println("文件夹" + folder.getName() + "删除失败!此文件夹内的文件可能正在被使用"); } } } } else { deleteFile(folder); } } }

web.xml中文件配置:

	
  
	
  
		
   
    com.chinacreator.report.listener.ExcelTempFileListener
   
	
  

运行演示图:(本人更改的执行时间为23:17,方便演示)