본문 바로가기

Web/JAVA

[Java] 특정 폴더의 파일 리스트 조회

Java의 File Class는 다음 API 제공

  • listFiles() : 폴더 경로에 있는 파일들을 배열형식으로 반환
  • listFiles(Filenamefilter filter) : 폴더 경로에 있는 파일들을 필터링하고 그 결과를 배열형식으로 반환
  • listfiles(FileFilter filter) : 폴더 경로에 있는 파일들을 필터링하고 그 결과를 배열형식으로 반환
  • list() : 폴더 경로에 있는 파일들의 이름들을 배열형식으로 반환
  • listFilenameFilter filter) : 폴더 경로에 있는 파일들의 이름들을 필터링하고 그 결과를 배열형식으로 반환
  • "/home/oSsonGo" 하위의 파일들을 출력
File dir = new File("/home/oSsonGo");
File files[] = dir.lestFiles();

for(int i = 0; i < files.length; i++) {
    System.out.println("File[" + files[i] + "]");
}

 

  • "/home/oSsonGo" 하위의 모든 파일들을 출력(재귀함수를 사용)
showAllFiles("/home/oSsonGo");

public static void showAllFiles(String dirPath) {
    File dir = new File(dirPath);
    File files[] = dir.listFiles();
    
    for(int i = 0; i < files.length; i++) {
        File file = files[i];
        if(file.isDirectory()) { // 폴더인 경우
            showAllFiles(file.getPath());
        } else { // 파일인 경우
            System.out.println("File[" + file + "]");
        }
    }
}

 

  • 특정 조건으로 파일을 필터링한 결과 출력
    • 파일명이  "test_"로 시작하는 파일 조회
File dir = new File("/home/oSsonGo");
FilenameFilter filter = new FilenameFilter() {
    public boolean accept(File f, String nm) {
        retrun nm.startsWith("test_");
    }
};

File files[] = dir.listFiles(filter);
for(int i = 0; i < files.length; i++) {
    System.out.println("File[" + files[i] + "]");
}

 

  • 파일 이름만 출력
File dir = new File("/home/oSsonGo");
String[] fileNm = dir.lest();
for(int i = 0; i < fileNm.length; i++) {
   System.out.println("File[" + fileNm[i] + "]");
}

 

  • 파일 이름만 출력(Filtering)
File dir = new File("/home/oSsonGo");
String[] fileNm = dir.list((f, nm) -> nm.startsWith("test_"));
for(int i = 0; i < fileNm.length; i++) {
    System.out.println("File[" + fileNm[i] + "]");
}

'Web > JAVA' 카테고리의 다른 글

[Java] 배열 내용을 Log 출력  (0) 2022.03.16
[Java] 특정 폴더에 특정 파일 삭제  (0) 2022.03.16
[Java] BigDecimal 올림, 반올림, 버림 처리  (0) 2022.03.13
[Java] 넘버링  (300) 2022.03.12