From ccb509a47eda5684113a2f00660e2d42547ef73e Mon Sep 17 00:00:00 2001 From: yiming Date: Thu, 19 May 2022 15:38:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=99=82=E6=B8=85=E7=90=86=E7=A3=81?= =?UTF-8?q?=E7=9B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/config/ConfigProperties.java | 2 + .../com/zhehekeji/web/service/CronTab.java | 69 +++++++++++++++++++ web/src/main/resources/application-dev.yml | 4 +- web/src/main/resources/application-prod.yml | 4 +- web/src/main/resources/application-test.yml | 4 +- 5 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 web/src/main/java/com/zhehekeji/web/service/CronTab.java diff --git a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java index 98579f1..a5e34c9 100644 --- a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java +++ b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java @@ -27,6 +27,8 @@ public class ConfigProperties { private Integer serverMode; + private Integer deleteFileDays; + private String userUrl; private KSEC ksec; diff --git a/web/src/main/java/com/zhehekeji/web/service/CronTab.java b/web/src/main/java/com/zhehekeji/web/service/CronTab.java new file mode 100644 index 0000000..9ef9e85 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/service/CronTab.java @@ -0,0 +1,69 @@ +package com.zhehekeji.web.service; + +import com.zhehekeji.web.config.ConfigProperties; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.attribute.BasicFileAttributes; +import java.time.*; + +@Component +@EnableScheduling +@Slf4j +public class CronTab { + + @Resource + private ConfigProperties configProperties; + + private static LocalDateTime now; + + @Scheduled(cron = "0 0 0 * * ?") + //@Scheduled(cron = "0 0/1 * * * *") + public void file() { + log.info(" corn delete file"); + now = LocalDateTime.now(); + File dir = new File(configProperties.getSavePath().getMediaPath()); + checkFileTime(dir,configProperties.getDeleteFileDays()); + File dir2 = new File(configProperties.getSavePath().getMp4Path()); + checkFileTime(dir2,configProperties.getDeleteFileDays()); + } + + public static void checkFileTime(File dir,int days) { + + if (dir.isDirectory()) { + String[] children = dir.list(); + if(children.length == 0){ + log.info("delete path:{}",dir.getPath()); + dir.delete(); + } + for (int i = 0; i < children.length; i++) { + checkFileTime(new File(dir, children[i]),days); + } + }else { + //判斷時間 + BasicFileAttributes attr = null; + try { + Path path = dir.toPath(); + attr = Files.readAttributes(path, BasicFileAttributes.class); + } catch (IOException e) { + e.printStackTrace(); + } + // 创建时间 + Instant instant = attr.creationTime().toInstant(); + LocalDateTime createTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); + Duration duration = Duration.between(createTime,now); + if(days<=duration.toDays()){ + log.info("delete path:{}",dir.getPath()); + dir.delete(); + } + } + } + +} diff --git a/web/src/main/resources/application-dev.yml b/web/src/main/resources/application-dev.yml index c0d7f26..891de3c 100644 --- a/web/src/main/resources/application-dev.yml +++ b/web/src/main/resources/application-dev.yml @@ -69,4 +69,6 @@ scanCodeMode: goodsCodeTypes: - 14 trayCodeTypes: - - 14 \ No newline at end of file + - 14 +# 照片 視頻保存多久 +deleteFileDays: 365 \ No newline at end of file diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index 4a808be..c4683ce 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -69,4 +69,6 @@ scanCodeMode: goodsCodeTypes: - 14 trayCodeTypes: - - 14 \ No newline at end of file + - 14 +# 照片 視頻保存多久 +deleteFileDays: 365 \ No newline at end of file diff --git a/web/src/main/resources/application-test.yml b/web/src/main/resources/application-test.yml index 7e8166b..90415ee 100644 --- a/web/src/main/resources/application-test.yml +++ b/web/src/main/resources/application-test.yml @@ -69,4 +69,6 @@ scanCodeMode: goodsCodeTypes: - 14 trayCodeTypes: - - 14 \ No newline at end of file + - 14 +# 照片 視頻保存多久 +deleteFileDays: 365 \ No newline at end of file