본문으로 바로가기

728x90

특정 디렉터리의 파일 목록은 File.listFiles()를 통하여 구할 수 있습니다. 이때 특정 확장자나 자신이 원하는 파일만 추출하기 위해서 FileFilter를 사용할 수 있습니다.

 

아래는 일반적인 특정한 디렉터리의 파일목록을 구하는 방법입니다.

import java.io.File;                                                                         
 
 
public class FileListTest { 
     public static void main(String[] args) { 
           File testDir = new File("test"); 
           
           File[] files = testDir.listFiles(); 
           
           for(File file : files) { 
                System.out.println(file.getPath()); 
           }
           
     }
}

 

다음은 FilenameFilter를 사용하여 파일목록을 추출하는 방법입니다.

import java.io.File;
import java.io.FilenameFilter;

public class FilenameFilterTest { 
	public static void main(String[] args) { 
		File dir = new File("test");
		if(dir.isDirectory()) {
			FilenameFilter filter = new FilenameFilter() {
				@Override
				public boolean accept(File dir, String name) {
					return name.endsWith(".bin");
				}
			};

			File[] files = dir.listFiles(filter);
			for(File file : files) {
            	System.out.println(file.getPath());
			}
		}
	}
}

위 코드에서는 파일의 확장자가 .bin으로 끝나는 파일만을 추출하는 예제입니다.

 

FilenameFilter 인터페이스의 accept() 함수의 반환 값이 true인 경우에 해당하는 파일만을 추출합니다.

 

참고자료

dololak.tistory.com/439

728x90