首页 > 开发 > Java > 正文

Java定时清理过期文件的实例代码

2024-07-14 08:43:01
字体:
来源:转载
供稿:网友

项目中经常需要自动定时去清理一些过期文件,这个其实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定时清理过期文件的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表