내가 올바른 접근법을 사용하고 있는지 확실하지 않아 새로운 생각을하기에 앞서 그것이 잘못되었다고 말하기 전에 열어 보았습니다. 파일을 찾는 데 필요한 디렉터리 배열이 있습니다. 예제에서 모두 .txt라고 가정 해 봅시다. 이제는 모든 디렉토리에서 Files.walkFileTree(...)
을 실행하고 SimpleFileVisitor
은 처음에 중단됩니다. 하지만 지금 내가 멈추는 지점에서 검색을 계속 next
버튼을 추가하고 싶습니다. 어떻게해야합니까?SimpleFileVisitor의 방문 계속
모든 일치 항목을 배열에 저장 한 다음 거기에서 읽을 수는 있지만 공간과 메모리를 많이 사용한다고 생각했습니다. 그래서 더 좋은 아이디어는 감사 할 것입니다.
// example paths content: [/usr, /etc/init.d, /home]
ArrayList<String> paths;
for(String s : paths)
Files.walkFileTree(Paths.get(s), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (alreadyfound >= 10) {
return FileVisitResult.TERMINATE;
}
if (file.toString().endsWith(".txt")) {
System.out.println("Found: " + file.toFile());
}
return FileVisitResult.CONTINUE;
}
});
것 사용 하는가? – DamienB
@DamienBoue 그래,하지만 어떻게해야할지 모르겠다. 내가 루트를보고 /home/file.txt에서 뭔가를 찾는다 고 가정 해 봅시다. 경로를 저장할 수는 있지만 모든 루트 하위 디렉토리가없는 상태에서 어떻게 계속할 수 있습니까? –
배열이 있다고하셨습니다. Array의 메소드 일치하는 패스의 인덱스를 가져옵니다. 그런 다음 세션에 넣으십시오. 그런 다음 Array에서이 색인에서 시작할 수 있습니다. 추가 도움을위한 코드 무효화 – DamienB