파일조회 수정

This commit is contained in:
Moon
2025-12-18 18:25:35 +09:00
parent f2ee64242d
commit 92f379d21b
3 changed files with 43 additions and 10 deletions

View File

@@ -22,6 +22,7 @@ import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import lombok.Getter; import lombok.Getter;
@@ -303,6 +304,14 @@ public class FIleChecker {
// int fileTotCnt = 0; // int fileTotCnt = 0;
// long fileTotSize = 0; // long fileTotSize = 0;
Predicate<Path> isTarget = p -> {
if (targetFileNm == null || targetFileNm.trim().isEmpty() || targetFileNm.trim().equals("*") ) {
return true; // 전체 파일 허용
}
return p.getFileName().toString().contains(targetFileNm);
};
try (Stream<Path> stream = Files.walk(startPath, maxDepth)) { try (Stream<Path> stream = Files.walk(startPath, maxDepth)) {
fileList = fileList =
@@ -315,7 +324,7 @@ public class FIleChecker {
|| extension.equals("*") || extension.equals("*")
|| targetExtensions.contains(extractExtension(p))) || targetExtensions.contains(extractExtension(p)))
.sorted(getFileComparator(sortType)) .sorted(getFileComparator(sortType))
.filter(p -> p.getFileName().toString().contains(targetFileNm)) .filter(isTarget)
.skip(startPos) .skip(startPos)
.limit(limit) .limit(limit)
.map( .map(
@@ -344,6 +353,16 @@ public class FIleChecker {
return fileList; return fileList;
} }
public static Long getFileTotSize(List<FIleChecker.Basic> files) {
Long fileTotSize = 0L;
if( files != null || files.size() > 0 ) {
fileTotSize = files.stream().mapToLong(FIleChecker.Basic::getFileSize).sum();
}
return fileTotSize;
}
public static Set<String> createExtensionSet(String extensionString) { public static Set<String> createExtensionSet(String extensionString) {
if (extensionString == null || extensionString.isBlank()) { if (extensionString == null || extensionString.isBlank()) {
return Set.of(); return Set.of();

View File

@@ -17,4 +17,6 @@ public class FileConfig {
private String rootSyncDir = "/app/original-images/"; private String rootSyncDir = "/app/original-images/";
private String tmpSyncDir = rootSyncDir+"tmp/"; private String tmpSyncDir = rootSyncDir+"tmp/";
private String syncFileExt = "tfw,tif";
} }

View File

@@ -54,20 +54,29 @@ public class MapSheetMngService {
public FilesDto getFilesAll(SrchFilesDto srchDto) { public FilesDto getFilesAll(SrchFilesDto srchDto) {
String dirPath = srchDto.getDirPath(); String dirPath = srchDto.getDirPath();
String extension = srchDto.getExtension();
String sortType = srchDto.getSortType();
int startPos = srchDto.getStartPos(); int startPos = srchDto.getStartPos();
int endPos = srchDto.getEndPos(); int limit = startPos - srchDto.getEndPos() + 1;
File dir = new File(dirPath);
File[] fileList = dir.listFiles();
List<Basic> files = new ArrayList<>(); List<FIleChecker.Basic> files = FIleChecker.getFilesFromAllDepth(
SimpleDateFormat dttmFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); srchDto.getDirPath(),
"*",
srchDto.getExtension(),
100,
srchDto.getSortType(),
startPos,
limit);
int fileListPos = 0; int fileListPos = 0;
int fileTotCnt = 0; int fileTotCnt = files.size();
long fileTotSize = 0; long fileTotSize = FIleChecker.getFileTotSize(files);
//List<Basic> 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 (fileList != null) {
if (sortType.equals("name")) { if (sortType.equals("name")) {
Arrays.sort(fileList); Arrays.sort(fileList);
@@ -105,7 +114,10 @@ public class MapSheetMngService {
} }
} }
} }
} }
*/
return new FilesDto(dirPath, fileTotCnt, fileTotSize, files); return new FilesDto(dirPath, fileTotCnt, fileTotSize, files);
} }