时间:2021-05-20
项目中经常需要自动定时去清理一些过期文件,这个其实Java实现挺简单的,核心部分就2个,一个定时任务,一个递归删除文件,不过前提是你的文件放在以“2018-12-05”这样命名的文件夹下,下面直接上核心代码:
1. 递归删除文件
/** * 递归删除文件夹下所有文件 * @param file */ public static void deleteFile(File file) { if (file.isDirectory()) { //递归删除文件夹下所有文件 File[] files = file.listFiles(); for (File f : files) { deleteFile(f); } //删除文件夹自己 if (file.listFiles().length == 0) { logger.info("删除文件夹:[{}]", file); file.delete(); } } else { // 如果是文件,就直接删除自己 logger.info("删除文件:[{}]", file); file.delete(); } }2. 定时任务
@Componentpublic class FileJob { private static final Logger logger = LoggerFactory.getLogger(FileJob.class); @Scheduled(cron = "0/1 * * * * *") public void clean() throws ParseException { logger.info("开始删除文件..."); long startTime = System.currentTimeMillis(); //删除文件 File deleteFile = new File("xxx"); File[] deleteFiles = deleteFile.listFiles(); for (File file : deleteFiles) { Date createDate = new SimpleDateFormat("yyyy-MM-dd").parse(file.getName()); //删除15天前的文件 if (new Date().compareTo(DateUtil.getDateIn(DateUtil.DAY, 15, createDate)) > 0) { FileUtil.deleteFile(uploadFile); } } logger.info("删除文件结束,总耗时:[{}]毫秒", System.currentTimeMillis() - startTime); }}总结
以上所述是小编给大家介绍的Java定时清理过期文件的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Java判断时间段内文件是否更新的方法。分享给大家供大家参考。具体实现方法如下:1.定时器复制代码代码如下:privateTimertimer;/
那么有没有方法自动清理临时文件夹呢?以下代码就是一个简单定时清理文件夹下文件的php代码。ps:这个代码如果不重启网站会一直执行下去,所以只用作于本地环境测试,
java读取某个文件夹下的所有文件学习java基础知识,读取文件,读取某个文件夹,需要读取所有文件,如何实现呢,看下实例代码。实例代码:importjava.i
复制代码代码如下:find/data1/*-typef-mtime+7-execrm{}\;删除修改时间七天以前的文件,加入crontab可以实现定时清理磁盘文
本文主要介绍的是Linux使用定时任务每周定时清理45天以前日志。服务器每天会产生很大的日志文件,为了不使硬盘被日志文件塞满,因此需要定期清理日志文件。这时我们