Java——删除最后修改时间大于30天的文件及文件夹,并且保存日志信息

这是一个Java程序,用于删除指定目录中最后修改时间超过30天的文件和文件夹,并将删除操作记录到日志文件中。程序首先检查目标目录是否存在,如果是目录则遍历其内容。然后,程序会创建一个日志文件,记录删除操作的详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.pb.demo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;

public class DemoFile {

private final static String dirPathLog = “G:/log”; //日志文件夹
private final static String dirPathDel = “G:/a”; //临时文件夹
public static void main(String[] args) {
//把要删除的文件包装成文件
File file = new File(dirPathDel);
if(file.exists()) { //文件或文件夹是否存在
if(file.isDirectory()) { //判断是否是目录
info(file);
}
}
}

public static void info(File file) {
//获得文件里面所有的文件及文件夹
File[] files = file.listFiles();
//创建您要写入的日志文件
String file1 = dirPathLog + “/del_path” + System.currentTimeMillis() + “.txt”; //写入的是否操作
//遍历files里面的所有文件及文件夹

FileWriter fw = null;
BufferedWriter bw = null;

for(File f : files) {

    //获得绝对路径下的文件及文件夹
    File absFile = f.getAbsoluteFile();

    //计算时间
    long day = 30;
    long hour = 24;
    long minute = 60;
    long second = 60;
    long mmcond = 1000;


    long currTime = System.currentTimeMillis();   //当前时间


    long lastTime = absFile.lastModified();     //文件被最后一次修改的时间

    //时间差
    long diffen = currTime - lastTime;

    long thDay = day * hour * minute * second * mmcond;

    if(diffen <= thDay) {
        absFile.delete();
        if(absFile.isDirectory()) {
            info(absFile);
            absFile.delete();
        }
    }

    System.out.println("当前时间:" + currTime);
    System.out.println("文件最后被修改的时间" + lastTime);
    System.out.println("时间差:" + diffen);
    System.out.println("30天的时间:" + thDay);


    long delTime = lastTime + thDay;   //要删除文件及文件夹的时间--毫秒数
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");   //2017-5-5 23:32:23:234
    String formatTime = sdf.format(delTime);

    String strDel = "删除该文件的时间是:" + "\t"+formatTime+"\t" + "\t删除的文件是:" + absFile.getAbsolutePath();     //absFile.getAbsolutePath()获得你要删除文件的绝对路径   
    try {
        fw = new FileWriter(file1, true);
        bw = new BufferedWriter(fw);
        bw.write(strDel);
        bw.newLine();    //换行
        bw.flush();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            bw.close();
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }









}            
//删除文件并记录日志方法
//拿到要删除文件里的所有文件及文件夹
//创建您删除文件后的日志文件
//创建输出流
//删除文件并记录日志

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值