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定时清理过期文件的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!