파일조회 수정
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -17,4 +17,6 @@ public class FileConfig {
|
||||
|
||||
private String rootSyncDir = "/app/original-images/";
|
||||
private String tmpSyncDir = rootSyncDir+"tmp/";
|
||||
|
||||
private String syncFileExt = "tfw,tif";
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user