定時清理磁盤
parent
ef8cfff5b8
commit
ccb509a47e
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue