Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 디렉터리 계층 구조를 생성하는 방법

Java의 java.io 패키지에 포함된 File 클래스는 시스템상의 파일이나 디렉터리(경로 이름)를 나타내는 클래스입니다. 이 클래스는 파일 및 디렉터리에 대한 다양한 작업을 수행할 수 있는 여러 메서드를 제공합니다.

그중 mkdir() 메서드는 현재 객체가 나타내는 경로에 디렉터리를 생성하는 역할을 합니다.

디렉터리 계층 구조 생성하기

새로운 디렉터리 계층 구조를 한 번에 생성하려면 같은 클래스의 mkdirs() 메서드를 사용하면 됩니다. 이 메서드는 현재 객체가 가리키는 경로에 디렉터리를 생성할 뿐만 아니라, 존재하지 않는 상위(부모) 디렉터리까지 모두 자동으로 만들어 줍니다.

예를 들어 D:\test\myDirectories\sample_directory처럼 여러 단계의 경로가 지정되어 있고 중간 디렉터리가 없더라도, mkdirs()를 호출하면 필요한 모든 상위 디렉터리와 최종 디렉터리가 함께 생성됩니다.

예제 코드

import java.io.File;
import java.util.Scanner;
public class CreateDirectory {
    public static void main(String args[]) {
        System.out.println("디렉터리를 생성할 경로를 입력하세요: ");
        Scanner sc = new Scanner(System.in);
        String path = sc.next();
        System.out.println("생성할 디렉터리의 이름을 입력하세요: ");
        path = path + sc.next();
        // File 객체 생성
        File file = new File(path);
        // 디렉터리 생성
        boolean bool = file.mkdirs();
        if(bool) {
            System.out.println("디렉터리가 성공적으로 생성되었습니다");
        } else {
            System.out.println("지정한 디렉터리를 생성하지 못했습니다");
        }
    }
}

실행 결과

디렉터리를 생성할 경로를 입력하세요:
D:\test\myDirectories\
생성할 디렉터리의 이름을 입력하세요:
sample_directory
디렉터리가 성공적으로 생성되었습니다

프로그램 실행 후 파일 탐색기나 터미널에서 해당 경로를 확인해 보면, 아래 그림과 같이 입력한 경로 전체에 걸쳐 디렉터리 계층 구조가 정상적으로 생성된 것을 확인할 수 있습니다.

Java에서 디렉터리 계층 구조를 생성하는 방법

mkdir()과 mkdirs()의 차이점

두 메서드의 핵심적인 차이는 다음과 같습니다.

  • mkdir(): 마지막 디렉터리 하나만 생성하며, 상위 디렉터리가 존재하지 않으면 실패하고 false를 반환합니다.
  • mkdirs(): 존재하지 않는 모든 상위 디렉터리를 포함하여 전체 경로의 디렉터리 계층을 생성합니다.

따라서 중간 경로가 이미 존재한다는 것이 보장된 경우에는 mkdir()을, 불확실한 경우에는 mkdirs()를 사용하는 것이 안전합니다.