상세 컨텐츠

본문 제목

File 클래스 파일 및 디렉토리 생성, 여러가지 File 객체 메서드

Java

by kwanghyup 2020. 6. 15. 02:23

본문

import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

// 파일 및 디렉토리 생성, 여러가지 파일객체 메서드
public class FileExam {

    public String path = FileExam.class.getResource("").getPath();
    // 패스경로에 '/'이 붙어서 나온다.
    // ex) /User/game/wow/
    public static void main(String[] args) throws IOException {
        FileExam fileExam = new FileExam();

        // 디렉토리 생성
        File directory = new File(fileExam.path+"directory");
        fileExam.createDirectory(directory);
        System.out.println(directory.getPath()); // 패스경로에 '/' 붙지 않음
        // ex) /User/game/wow

        // 파일 생성
        File file1 = new File(directory.getPath()+"/file1.txt");
        File file2 = new File(directory.getPath()+"/file2.txt");
        fileExam.createFile(file1);
        fileExam.createFile(file2);

        // listFiles() 메서드 사용
        File filelist = new File(fileExam.path);
        fileExam.fileInfo(filelist);
    }

    public void createFile(File file) throws IOException {
        if(!file.exists()){
            // 디렉토리가 존재하지 않으면 예외가 발생한다.
            file.createNewFile();
        }else {
            System.out.println("같은 파일이 이미 존재함");
        }
    } // createFile - end 

    public void createDirectory(File directory) {
        if(!directory.exists()){ // 디렉토리가 존재하지 않는다면
            boolean resutl = directory.mkdirs(); // 디렉토리 생성
            // mkdir() 경로상의 디렉토리가 하나라도 존재하지 않으면 생성 안됨
            // mkdirs() 경로상의 모든 디렉토리를 생성한다. (권장방법)
            System.out.println(resutl);
        } else{
            System.out.println("같은 디렉토리가 이미 존재함");
        }
    } // createDirectory - end

    void fileInfo(File filelist){
        // 파일 및 디렉토리의 정보를 파일객체 배열로 담음
        File[] files =  filelist.listFiles();
        // 수정된 날짜 표시를 위해 포매팅
        DateFormat formatting = new SimpleDateFormat("yyyy-MM-dd hh:mm");

        for(File file : files ){
            if(file.isDirectory()){ // 디렉토리이면
                System.out.println(file.getName());
            }
            // else 문을 사용해도 된다.
            if(file.isFile()){ // 파일이면
                String modified = formatting.format(new Date(file.lastModified()));
                System.out.println(modified); // 수정된 날짜
                System.out.println(file.length()+"byte");  // 파일의 크기
                System.out.println(file.getName()); // 파일 이름
            }
            System.out.println();
        } // for - end
        
    } // fileInfo - end
}

관련글 더보기

댓글 영역