이번 시간은 디렉토리 목록 나열에 대해 알아보도록 하겠습니다.


NIO2에서는 DirectoryStream인터페이스를 제공합니다.

DirectoryStream은 Iterable을 구현한 인터페이스 입니다.

DirectoryStream접근은 Files.newDirectoryStream()메서드를 통해 수행합니다.


 Files.newDirectoryStream()은 디렉토리 패스를 인자로 받아 DirectoryStream<Path>로 반환 해줍니다.

쉽게 말하면 디렉토리 패스를 넘겨주면 파일목록을 반환해주는 기능을 합니다.


아래는 샘플소스입니다.

[샘플 소스]

import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
 
 
public class NioSample2 {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		Path path = Paths.get("D:/nio2");
 
		System.out.println(path.getFileName()+"  폴더 내용  리스트");
		System.out.println("----------------------------------");
 
		DirectoryStream<Path> dir = null;
		try {
			dir = Files.newDirectoryStream(path);
			for (Path file : dir) {
				System.out.println(file.getFileName());
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (dir != null) {
					dir.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
 
	}
}



[실행 결과]

fileList.PNG



실행을 시켜보면 당연히 파일 및 디렉토리 목록이 표시됩니다.

당연한 얘기 겠지만, 확장자가 있는것은 파일이고 없는것은 디렉토리 입니다.


디렉토리 내용을 나열하는것도 별로 어렵지 앉죠?

다음 시간은 디렉토리 내용에서 원하는 내용만 나열하는것을 해 보도록 하겠습니다.


감사합니다.