2012-11-27 4 views
0

루프가없는 특정 폴더에 반복 처리하는 가장 좋은 방법은 무엇입니까? 즉, 모든 파일을 한 번 확인하면 for 루프가 종료됩니다. (루프)Java에서 루프가없는 특정 디렉토리의 파일에 반복 수행

내 예제 코드 :

 File dir = new File(svnClient.getDestinationPath().getAbsolutePath()); 
      for (File child : dir.listFiles()) 
      { 
      report.report("File name: " + child.getName()); 
      } 
+1

루프가 없습니까? 당신의 예제는 향상된 for 루프를 포함하고 있습니다 ... – jlordo

+0

* 왜 * 어떤 루프없이 이것을하고 싶습니까? 귀하의 질문에 명확하지 않습니다 ... –

+0

반복하려면 루프가 필요합니다. 그렇게하는 과정에서 문제는 무엇입니까? –

답변

3

재귀 :

public void myMethod(){ 
    File dir = ...; 
    List<File> files = Arrays.asList(dir.listFiles()); 
    recurse(files.iterator()); 
} 

private void recurse(Iterator<File> iterator){ 
    if (iterator.hasNext()){ 
      File file = iterator.next(); 
      report.report(file.getName()); 
      recurse(iterator); 
    } 
} 
+0

왜 내 서식이 계속 유지되는지 알 수 없습니다. –

0

남용 listFiles(FileFilter filter) 방법은 콜백에서 로직을 넣어 반환 값을 무시합니다.

File dir = ... 
dir.listFiles(new FileFilter() { 
    boolean accept(File child) { 
     report.report("File name: " + child.getName()); 
     return false; 
    } 
}); 
관련 문제