Java定时清理过期文件的实例代码
项目中经常需要自动定时去清理一些过期文件,这个其实Java实现挺简单的,核心部分就2个,一个定时任务,一个递归删除文件,不过前提是你的文件放在以“2018-12-05”这样命名的文件夹下,下面直接上核心代码:
1.递归删除文件
/** *递归删除文件夹下所有文件 *@paramfile */ publicstaticvoiddeleteFile(Filefile){ if(file.isDirectory()){ //递归删除文件夹下所有文件 File[]files=file.listFiles(); for(Filef:files){ deleteFile(f); } //删除文件夹自己 if(file.listFiles().length==0){ logger.info("删除文件夹:[{}]",file); file.delete(); } }else{ //如果是文件,就直接删除自己 logger.info("删除文件:[{}]",file); file.delete(); } }
2.定时任务
@Component publicclassFileJob{ privatestaticfinalLoggerlogger=LoggerFactory.getLogger(FileJob.class); @Scheduled(cron="0/1*****") publicvoidclean()throwsParseException{ logger.info("开始删除文件..."); longstartTime=System.currentTimeMillis(); //删除文件 FiledeleteFile=newFile("xxx"); File[]deleteFiles=deleteFile.listFiles(); for(Filefile:deleteFiles){ DatecreateDate=newSimpleDateFormat("yyyy-MM-dd").parse(file.getName()); //删除15天前的文件 if(newDate().compareTo(DateUtil.getDateIn(DateUtil.DAY,15,createDate))>0){ FileUtil.deleteFile(uploadFile); } } logger.info("删除文件结束,总耗时:[{}]毫秒",System.currentTimeMillis()-startTime); } }
总结
以上所述是小编给大家介绍的Java定时清理过期文件的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!