2009-06-09 3 views
0

다음은 지금까지 가지고있는 코드입니다.Java에서 디렉토리 및 하위 디렉토리를 가져 오는 방법은 무엇입니까?

import java.io.*; 

class JAVAFilter implements FilenameFilter { 
    public boolean accept(File dir, String name) { 
     return (name.endsWith(".java")); 
    } 
} 

public class tester { 
    public static void main(String args[]) 
    { 
     FilenameFilter filter = new JAVAFilter(); 
     File directory = new File("C:\\1.3\\"); 
     String filename[] = directory.list(filter); 
    } 
} 

이 시점에서 C : \ 1.3 \ 디렉토리의 모든 * .java 파일 목록이 문자열 배열 filename에 저장됩니다. 그러나, 하위 디렉터리에있는 모든 Java 파일의 목록을 저장하고 싶습니다. (C : \ 1.3 \ 또한 해당 경로를 사용하는 것이 좋습니다.)이 작업을 수행하는 방법은 무엇입니까? 감사합니다!

답변

1

는 지금까지 내가 아는 한, 당신이해야합니다를 (재귀 적으로) 이것을 수동으로 수행하십시오. 즉, C : \ 1.3 \의 모든 하위 디렉토리에 대해 목록 (필터)을 호출해야합니다 ...

3

나는 두려워요. . 당신은 당신은 모든 파일과 디렉토리를 나열 할거야 list(FilenameFilter) 방법으로 그것을 다음과 같이 자신을 필터링 뭔가 수행 할 수 없습니다.

public List<File> getFiles(File dir, FilenameFilter filter) { 
    List<File> ret = new ArrayList<File>(); 
    for (File f : dir.listFiles()) { 
     if (f.isDirectory()) { 
      ret.addAll(getFiles(f, filter)); 
     } else if (filter.accept(dir, f.getName())) { 
      ret.add(f); 
     } 
    } 
    return ret; 
} 
관련 문제