• 定时清理文件及文件夹


    import java.io.File;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.attribute.BasicFileAttributes;
    import java.nio.file.attribute.FileTime;
    import java.util.Date;

    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;

    import com.ioif.util.Configer;
    import com.ioif.util.Logger;

    /**
    * 清理临时文件
    *
    * @author lch
    * @date 2021年8月11日
    */
    @Component
    public class ClearTempFilesTask {

    //临时文件保存时间30天
    private final Long SAVE_TIME = 1000 * 60 * 60 * 24 * 30L;

    /**
    * 每天执行一次
    */
    @Scheduled(cron = "0 0 0 * * ?")
    public void runTask() {
    Logger.getLogger().info(this.getClass().getName() + ":runTask()");
    try {
    //临时文件目录
    String filePath = Configer.getInstance().getProperty("temp_file_write");
    delFiles(filePath);
    } catch (Exception e) {
    Logger.getLogger().error(e.getMessage());
    e.printStackTrace();
    }
    }

    private void delFiles(String filePath) {
    Long now=new Date().getTime();
    File directory = new File(filePath);
    if (directory.exists()) {
    String[] fileList = directory.list();
    File tmpFile = null;
    for (int i = 0; i < fileList.length; i++) {
    tmpFile = new File(directory.getAbsolutePath(), fileList[i]);
    if (tmpFile.isDirectory()) {
    delFiles(tmpFile.getPath());
    if(new File(directory.getAbsolutePath(), fileList[i]).list().length<1){
    new File(directory.getAbsolutePath(), fileList[i]).delete();
    }
    } else if (tmpFile.isFile()) {
    try {
    BasicFileAttributes bAttributes= Files.readAttributes(tmpFile.toPath(),BasicFileAttributes.class);
    FileTime ct = bAttributes.lastModifiedTime();
    if(now-ct.toMillis()>SAVE_TIME)
    tmpFile.delete();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    }
    }

    public static void main(String[] args) {
    ClearTempFilesTask task = new ClearTempFilesTask();
    task.runTask();
    }

    }
  • 相关阅读:
    Windows命令处理进程
    Linux 文件权限管理
    Linux 用户与用户组管理
    Linux 文件类型及操作
    快速了解必要的网络知识
    SSH免密码登录
    用SSH访问内网主机的方法
    MongoDB与PostgresQL无责任初步测试
    SpringMVC的Action在同一时间里只允许同一个浏览器的单次进入?
    Netty5使用自签证书实现SSL安全连接
  • 原文地址:https://www.cnblogs.com/lch1990/p/15127539.html
Copyright © 2020-2023  润新知