Java - 디렉토리(폴더) 생성, 3가지 방법

자바에서 특정 경로에 디렉토리를 생성하는 방법을 소개합니다.

1. File.mkdir()로 디렉토리 생성

File.mkdir()는 파일에 입력된 경로에 디렉토리를 생성하고, 성공하면 true, 실패하면 false를 리턴합니다.

import java.io.File;

public class Example {

    public static void main(String[] args) {

        File dir = new File("/tmp/example");

        if (dir.mkdir()) {
            System.out.println("Created successfully: " + dir);
        }
    }
}

Output:

Created successfully: /tmp/example

주의할 점은, 부모 디렉토리가 존재하지 않으면 실패를 합니다.

아래 예제를 /tmp 폴더만 있는 환경에서 실행하였을 때, example과 subdir1 디렉토리가 존재하지 않아 subdir2를 생성하는데 실패하였습니다.

import java.io.File;

public class Example1 {

    public static void main(String[] args) {

        File dir = new File("/tmp/example/subdir1/subdir2");

        if (dir.mkdir()) {
            System.out.println("Created successfully: " + dir);
        } else {
            System.out.println("Failed to create: " + dir);
        }
    }
}

Output:

Failed to create: /tmp/example/subdir1/subdir2

2. Files.createDirectory()로 디렉토리 생성

Files.createDirectory()는 인자로 전달된 Path 객체에 대한 디렉토리를 생성합니다. Path 객체는 Paths.get(path)으로 생성할 수 있습니다.

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class Example1 {

    public static void main(String[] args) {

        String path = "/tmp/example";

        try {
            Files.createDirectory(Paths.get(path));
            System.out.println("Created successfully: " + path);
        } catch (IOException e) {
            System.out.println("Failed to create: " + path + " " + e);
        }
    }
}

Output:

Created successfully: /tmp/example

이 방법도 부모 디렉토리가 존재하지 않으면 디렉토리 생성에 실패합니다.

3. Files.createDirectories()으로 존재하지 않는 부모 디렉토리도 함께 생성

위에서 소개한 방법들은 부모 디렉토리가 존재하지 않을 때 디렉토리 생성에 실패합니다.

부모 디렉토리도 함께 생성하면서 타겟 디렉토리를 생성하려면 Files.createDirectories()를 사용하시면 됩니다.

아래 코드를 /tmp만 생성된 환경에서 실행했을 때, 존재하지 않는 example과 subdir1 디렉토리도 함께 생성하면서 subdir2를 생성합니다.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class Example2 {

    public static void main(String[] args) {

        String path = "/tmp/example/subdir1/subdir2";
        try {
            Files.createDirectories(Paths.get(path));
            System.out.println("Created successfully: " + path);
        } catch (IOException e) {
            System.out.println("Failed to create: " + path + " " + e);
        }
    }
}

Output:

Created successfully: /tmp/example/subdir1/subdir2
Loading script...
codechachaCopyright ©2019 codechacha