[JAVA] FilenameFilter 를 이용한 특정 확장자 파일리스트 가져오기
하위디렉토리 폴더와 파일 읽기
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
public class folderInReader {
private static ArrayList<String> list = new ArrayList<String>();
public static void main(String[] args) throws IOException {
String message = null;
String filePath = ".";
File path = new File( filePath );
if( path.exists() == false ){
System.out.println("경로가 존재하지 않습니다");
}
File[] fileList = path.listFiles();
int tab = 1;
for( int i = 0 ; i < fileList.length ; i++ ){
if( fileList[ i ].isDirectory() ){
message = "[디렉토리] ";
message += fileList[ i ].getName();
System.out.println( message );
subDirList( fileList[ i ].getName(), tab);
Collections.reverse(list);
for(String str:list) {
System.out.println(str);
}
list.clear();
}else{
message = "[파일] ";
message += fileList[ i ].getName();
System.out.println( message );
}
}
}
private static void subDirList(String source, int tab){
File dir = new File(source);
File[] fileList = dir.listFiles();
String sTab = "";
for ( int i =0 ; i < tab ; i++){
sTab +="\t";
}
try{
for(int i = 0 ; i < fileList.length ; i++){
File file = fileList[i];
if(file.isFile()){
// 파일이 있다면 파일 이름 출력
if( i==0 ){
//System.out.println("[디렉토리 이름] = " + dir.getPath() );
list.add("[디렉토리 이름1] = " + dir.getPath() ) ;
}
//System.out.println(sTab + " 파일 이름 = " + file.getName());
list.add(sTab + " 파일 이름 = " + file.getName() );
}else if(file.isDirectory()){
// 서브디렉토리가 존재하면 재귀적 방법으로 다시 탐색
subDirList(file.getCanonicalPath().toString(),tab+1);
list.add("[디렉토리 이름2] = " + dir.getPath() );
//System.out.println("[디렉토리 이름] = " + dir.getPath() );
}
}
}catch(IOException e){
}
}
}
'JAVA' 카테고리의 다른 글
[펌]jar 내부 파일 읽기 (0) | 2014.04.19 |
---|---|
[펌]Java Architecture for XML Binding (JAXB) 예제 (0) | 2014.03.03 |
[ERROR] java 오류 정리 (0) | 2014.02.26 |
Socket으로 Mail 전송 샘플 (0) | 2014.02.24 |
SMTP 서버를 통해 메일 전송 (0) | 2014.02.19 |