SpringBoot项目中定时任务删除时间大于30天的文件及文件夹

Posted 老周聊架构

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot项目中定时任务删除时间大于30天的文件及文件夹相关的知识,希望对你有一定的参考价值。

欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。

1、首先要先写定时任务,之前有一篇写过定时任务的文章,没有看的可以点击下面的链接看一下:

SpringBoot项目中集成Quartz实现定时调度任务

定时任务编写好了,剩下的就简单了。

2、编写删除时间大于30天的文件及文件夹的方法

public class DeleteExpiredFile 

    private static final String ROOT_DIR_HISTORY_PATH = "/data";
	
    public void deleteExpiredFileTask() 
        File file = new File(ROOT_DIR_HISTORY_PATH);
        deleteExpiredFile(file);
    

    private void deleteExpiredFile(File file) 
        if (!file.exists()) return;
        if (!file.isDirectory()) 
            determineExpiredFile(file);
         else 
            for (File f : file.listFiles()) 
                deleteExpiredFile(f);
            
        
    

    private void determineExpiredFile(File file) 
        long lastModifiedTime = file.lastModified();
        long currentTime = new Date().getTime();
        long timeInterval = 30 * 24 * 60 * 60 * 1000;
        if (currentTime - lastModifiedTime > timeInterval) 
            file.delete();
        
    


3、定时任务的启动类调用 deleteExpiredFileTask() 这个方法就可以了

以上是关于SpringBoot项目中定时任务删除时间大于30天的文件及文件夹的主要内容,如果未能解决你的问题,请参考以下文章

实践:SpringBoot实现定时任务的动态增删启停

SpringBoot实现动态增删启停定时任务

SpringBoot实现动态增删启停定时任务

SpringBoot实现动态增删启停定时任务

SpringBoot实现动态增删启停定时任务

SpringBoot实现动态增删启停定时任务