Javaでディレクトリを作成する方法

Javaでディレクトリを作成する方法

Javaでディレクトリを作成するには、次のコードを使用します。

1. 標準のJavaIOパッケージ–java.io.File

1.1 Create a single directory.

new File("C:\\Directory1").mkdir();

1.2 Create a directory named “Directory2 and all its sub-directories “Sub2” and “Sub-Sub2” together.

new File("C:\\Directory2\\Sub2\\Sub-Sub2").mkdirs()

P.S Both method mkdir() and mkdirs() are returning a boolean value to indicate the operation status : true if succeed, false otherwise.

2. JDK 7の場合、Java NIOパッケージ–java.nio.file.Pathsおよびjava.nio.file.Filesを試してください

Path path = Paths.get("C:\\Directory1");
Files.createDirectories(path);

1. Java IOの例

従来のJava IOディレクトリの例では、ディレクトリが存在するかどうかを確認し、存在しない場合は作成します。

CreateDirectoryExample.java

package com.example.file;

import java.io.File;

public class CreateDirectoryExample {

    public static void main(String[] args) {

        File file = new File("C:\\Directory1");
        if (!file.exists()) {
            if (file.mkdir()) {
                System.out.println("Directory is created!");
            } else {
                System.out.println("Failed to create directory!");
            }
        }

        File files = new File("C:\\Directory2\\Sub2\\Sub-Sub2");
        if (!files.exists()) {
            if (files.mkdirs()) {
                System.out.println("Multiple directories are created!");
            } else {
                System.out.println("Failed to create multiple directories!");
            }
        }

    }

}

2. Java NIOの例

Java NIOクラスがJDK 7に追加されました。

CreateDirectoryExample.java

package com.example.file;

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

public class CreateDirectoryExample {
    public static void main(String[] args) {

        Path path = Paths.get("C:\\Directory2\\Sub2\\Sub-Sub2");
        //if directory exists?
        if (!Files.exists(path)) {
            try {
                Files.createDirectories(path);
            } catch (IOException e) {
                //fail to create directory
                e.printStackTrace();
            }
        }

    }

}

ディレクトリの作成に失敗した場合、たとえばIOExceptionがスローされます

java.nio.file.AccessDeniedException: /directory-name
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
    at java.nio.file.Files.createDirectory(Files.java:674)
    at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
    at java.nio.file.Files.createDirectories(Files.java:767)