From 92f379d21bc818dc4a66f534d8e22cbfafddd527 Mon Sep 17 00:00:00 2001 From: Moon Date: Thu, 18 Dec 2025 18:25:35 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kamcoback/common/utils/FIleChecker.java | 21 ++++++++++++- .../kamco/cd/kamcoback/config/FileConfig.java | 2 ++ .../mapsheet/service/MapSheetMngService.java | 30 +++++++++++++------ 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java index 860a3a4e..9cc440ca 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java @@ -22,6 +22,7 @@ import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Set; +import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; import lombok.Getter; @@ -303,6 +304,14 @@ public class FIleChecker { // int fileTotCnt = 0; // long fileTotSize = 0; + Predicate isTarget = p -> { + if (targetFileNm == null || targetFileNm.trim().isEmpty() || targetFileNm.trim().equals("*") ) { + return true; // 전체 파일 허용 + } + return p.getFileName().toString().contains(targetFileNm); + }; + + try (Stream stream = Files.walk(startPath, maxDepth)) { fileList = @@ -315,7 +324,7 @@ public class FIleChecker { || extension.equals("*") || targetExtensions.contains(extractExtension(p))) .sorted(getFileComparator(sortType)) - .filter(p -> p.getFileName().toString().contains(targetFileNm)) + .filter(isTarget) .skip(startPos) .limit(limit) .map( @@ -344,6 +353,16 @@ public class FIleChecker { return fileList; } + public static Long getFileTotSize(List files) { + + Long fileTotSize = 0L; + if( files != null || files.size() > 0 ) { + fileTotSize = files.stream().mapToLong(FIleChecker.Basic::getFileSize).sum(); + } + + return fileTotSize; + } + public static Set createExtensionSet(String extensionString) { if (extensionString == null || extensionString.isBlank()) { return Set.of(); diff --git a/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java b/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java index 345ac523..9d63c309 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java @@ -17,4 +17,6 @@ public class FileConfig { private String rootSyncDir = "/app/original-images/"; private String tmpSyncDir = rootSyncDir+"tmp/"; + + private String syncFileExt = "tfw,tif"; } diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java index dceea25c..edde3889 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java @@ -54,20 +54,29 @@ public class MapSheetMngService { public FilesDto getFilesAll(SrchFilesDto srchDto) { String dirPath = srchDto.getDirPath(); - String extension = srchDto.getExtension(); - String sortType = srchDto.getSortType(); int startPos = srchDto.getStartPos(); - int endPos = srchDto.getEndPos(); - File dir = new File(dirPath); - File[] fileList = dir.listFiles(); + int limit = startPos - srchDto.getEndPos() + 1; - List files = new ArrayList<>(); - SimpleDateFormat dttmFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List files = FIleChecker.getFilesFromAllDepth( + srchDto.getDirPath(), + "*", + srchDto.getExtension(), + 100, + srchDto.getSortType(), + startPos, + limit); int fileListPos = 0; - int fileTotCnt = 0; - long fileTotSize = 0; + int fileTotCnt = files.size(); + long fileTotSize = FIleChecker.getFileTotSize(files); + //List files = new ArrayList<>(); + //SimpleDateFormat dttmFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + //int fileListPos = 0; + //int fileTotCnt = 0; + //long fileTotSize = 0; + /* if (fileList != null) { if (sortType.equals("name")) { Arrays.sort(fileList); @@ -105,7 +114,10 @@ public class MapSheetMngService { } } } + + } + */ return new FilesDto(dirPath, fileTotCnt, fileTotSize, files); }