删除文件修改

南通通威
LAPTOP-S9HJSOEB\昊天 11 months ago
parent f6aa1ebb14
commit 621ad8078b

@ -31,6 +31,16 @@ public class PLCController {
private ConfigProperties configProperties;
@Resource
private KsecNettyClient ksecNettyClient;
@Resource
CronTab cronTab;
@GetMapping("/delFile")
@ApiOperation(value = "删除文件")
public Result delFile(){
cronTab.file();
return Result.success();
}
@GetMapping("/tcp")

@ -29,6 +29,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.HashMap;
import java.util.Iterator;
@ -72,12 +73,12 @@ public class CronTab {
File dir = new File(configProperties.getSavePath().getMediaPath());
long space = dir.getFreeSpace() / gByte;
log.info(" free space :{}",space);
if(space > 150){
if(space > 350){
return;
}
deleteOldFiles(dir,configProperties.getDeleteFileDays());
File dir2 = new File(configProperties.getSavePath().getMp4Path());
deleteOldFiles(dir2,configProperties.getDeleteFileDays());
deleteOldFoldersByName(dir2,configProperties.getDeleteFileDays());
}
public static void putTime(Integer streetId){
@ -170,6 +171,46 @@ public class CronTab {
}
}
public static void deleteOldFoldersByName(File parentDir, int days) {
if (!parentDir.exists() || !parentDir.isDirectory()) {
System.out.println("指定的路径不是一个有效的目录: " + parentDir.getName());
return;
}
File[] folders = parentDir.listFiles(File::isDirectory);
if (folders != null) {
for (File folder : folders) {
String folderName = folder.getName();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/M/d");
try {
LocalDate folderDate = LocalDate.parse(folderName, formatter);
LocalDate now = LocalDate.now();
long daysBetween = ChronoUnit.DAYS.between(folderDate, now);
if (daysBetween > days) {
deleteFolder(folder);
log.info("删除文件夹: {}", folder.getPath());
}
} catch (Exception e) {
log.warn("无法解析文件夹名称: {}", folderName);
}
}
}
}
private static void deleteFolder(File folder) {
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
deleteFolder(file);
} else {
file.delete();
}
}
}
folder.delete();
}
public static void deleteOldFiles( File folder,int days) {
if (!folder.exists() || !folder.isDirectory()) {
System.out.println("指定的路径不是一个有效的文件夹: " + folder.getName());

Loading…
Cancel
Save