File Sample Code(파일 예제)

신광진·2021년 3월 18일
0

Java

목록 보기
2/19
post-thumbnail

Sample Code

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

public class FileTest_3 {

	public static void main(String[] args) {
		
		fileCheck(new File("D:\\Movie"));
	}
	
	public static void fileCheck(File dir) {
		
		if(!dir.exists()) {
			System.out.println(dir + "is Not found");
			return;
		}
		
		// 해당 디렉토리 안에 있는 모든 파일과 디렉토리 객체를 가져옴
		File[] fileList = dir.listFiles();
		
		// 하위 디렉토리의 인덱스를 저장하기 위한 List
		List<Integer> subDir = new ArrayList<>();
		
		// 마지막 수정날짜를 표시하기 위한 포맷
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm");
		
		System.out.println("<< " + dir.getName() + "의 정보 >>");
		for(int i=0; i<fileList.length; i++) {
			String attr = "";
			String size = "";
			
			if(fileList[i].isDirectory()) {
				attr += "<DIR>";
				subDir.add(i);
			} else {
				attr += fileList[i].canRead() ? "R" : "-";
				attr += fileList[i].canWrite() ? "W" : "-";
				attr += fileList[i].isHidden() ? "H" : "-";
				size += fileList[i].length();
			}
			
            // printf를 사용하여 format지정
			System.out.printf
            ("%s %5s %12s %s", 
            sdf.format(fileList[i].lastModified()), 
            attr, 
            size,
            fileList[i].getName()
            );

			System.out.println();
		}
		
		// 하위 디렉토리의 정보를 확인하기 위해 재귀호출
		for(int i=0; i<subDir.size(); i++) {
            System.out.println();
			fileCheck(fileList[subDir.get(i)]);
		}
	}
}

P.S


소스를 가져가서 자신의 Directory정보를 확인해보는 것을 추천드립니다.

코드만 보는것보다 직접 결과를 확인하시면 더 직관적으로 이해가 잘 되실겁니다.

profile
이거 왜안되냐

0개의 댓글