파일조회 수정
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user