파일조회 수정

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.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<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)) {
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<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) {
if (extensionString == null || extensionString.isBlank()) {
return Set.of();

View File

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

View File

@@ -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<Basic> files = new ArrayList<>();
SimpleDateFormat dttmFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<FIleChecker.Basic> 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<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 (sortType.equals("name")) {
Arrays.sort(fileList);
@@ -105,7 +114,10 @@ public class MapSheetMngService {
}
}
}
}
*/
return new FilesDto(dirPath, fileTotCnt, fileTotSize, files);
}