【java工具类】删除文件夹中7天之前的所有文件

因项目需求,需要删除某一文件夹中7天之前的所有文件,仅保留7天之内的,代码及测试记录如下:

java代码

注意,本代码所描述的“7天”为“7×24”个小时,而不是一个自然日这样的概念。

import java.io.File;

public class FileOperationUtil {

    /**
     * 删除文件夹中7天前的文件
     * @param file 需进行删除处理的文件夹File
     * @param time 有效保留时间的毫秒值(本代码中为7天的毫秒值)
     */
    public static void deleteFile(File file, long time) {
        //得到file里面全部的文件及文件夹
        File[] files = file.listFiles();

        //遍历files里面的全部的文件及文件夹
        for(File f : files) {
            //得到绝对路径下的文件及文件夹
            File absFile = f.getAbsoluteFile();

            if (absFile.isDirectory()){// 如果是目录,则递归调用当前方法,以删除其子文件夹中的超过7天的文件
                deleteFile(absFile, time);
            }

            //计算时间
            long currTime = System.currentTimeMillis(); //系统当前时间
            long lastTime = absFile.lastModified(); //文件被最后一次修改的时间

            //计算时间差
            long diffen = currTime - lastTime;
            // 如时间差超过有效保留时间,则删除该文件
            if(diffen > time) {
                absFile.delete();
            }
        }
    }

    public static void main(String[] args) {
        String path = "D:\\test1\\";//测试文件夹
        long time = 7 * 24 * 60 * 60 * 1000;//计算有效保留时间7天的毫秒值

        File file = new File(path);
        if(file.exists() && file.isDirectory()) { //判断是不是目录
            deleteFile(file, time);
        }
    }
}


测试记录

测试前

以下为执行java代码前,“D:\test1”目录下的所有文件及子文件夹下的所有文件,我当前的测试时间为2023年11月30日15:30。
在这里插入图片描述
在这里插入图片描述

测试结果

即,超过7天的所有文件已全部被删除。
在这里插入图片描述
在这里插入图片描述





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值