java删除几天前的文件

业务需求:

有时候我们在上传图片到指定目录后,长时间会造成有些图片已经没有任何作用了,我们就可以做一个定时删除指定目录下的文件,去删除那些文件

复制代码
package com.test.demo;

import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.util.Calendar;
import java.util.Date;

/**
 * @author zhangdan
 * @version 1.0
 * @description: TODO
 * @date 2022/7/1 15:37
 */

@Slf4j
public class DeleteFilesSimpe {

    public static void main(String[] args) {
        String filePath = "D:\\testtest";
        moveFileToReady(filePath);
    }

    public static Integer moveFileToReady(String fromDir){
        File srcDir = new File(fromDir);
        if (!srcDir.exists()) {
            return 0;
        }
        File[] files = srcDir.listFiles();
        if (files == null || files.length <= 0) {
            return 0;
        }
        int l = 0;
        Date today = new Date();
        for (int i = 0; i < files.length; i++) {
            if (files[i].isFile()) {
                try {
                    File ff = files[i];
                    long time=ff.lastModified();
                    Calendar cal=Calendar.getInstance();
                    cal.setTimeInMillis(time);
                    Date lastModified = cal.getTime();
                    long days = getDistDates(today, lastModified);
                    if(days>=3){
                        files[i].delete();
                        l++;
                    }
                } catch (Exception e) {
                    log.info("删除文件失败");
                }
            }
        }
        return l;
    }

    /**
     * @param startDate
     * @param endDate
     * @return
     */
    public static long getDistDates(Date startDate, Date endDate)
    {
        long totalDate = 0;
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(startDate);
        long timestart = calendar.getTimeInMillis();
        calendar.setTime(endDate);
        long timeend = calendar.getTimeInMillis();
        totalDate = Math.abs((timeend - timestart))/(1000*60*60*24);
        return totalDate;
    }


}
复制代码

转:https://blog.csdn.net/q15102780705/article/details/113534783

posted @   丹阳89  阅读(602)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示