Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで(階層的に)ディレクトリを作成するにはどうすればよいですか?

Java 7以降なら Files.createDirectories() を使う

Java 7から導入された Files クラスには、ファイルやディレクトリなどを操作するための静的メソッドが多数用意されています。

その中の createDirectories() メソッドを使うと、指定したディレクトリを、まだ存在しない親ディレクトリも含めて一括で作成できます。途中の階層がいくつあっても、このメソッド1つですべて作成されるのが特徴です。

サンプルコード

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

public class Demo {
    public static void main(String args[]) throws IOException {
        System.out.println("ディレクトリを作成するパスを入力してください:");
        Scanner sc = new Scanner(System.in);
        String pathStr = sc.next();

        System.out.println("作成したいディレクトリの階層を入力してください:");
        pathStr = pathStr + sc.next();

        // Pathオブジェクトを生成
        Path path = Paths.get(pathStr);

        // ディレクトリ階層を作成
        Files.createDirectories(path);

        System.out.println("ディレクトリ階層が正常に作成されました");
    }
}

実行結果

ディレクトリを作成するパスを入力してください:
D:
作成したいディレクトリの階層を入力してください:
sample1/sample2/sample3/final_directory
ディレクトリ階層が正常に作成されました

プログラム実行後にファイルシステムを確認すると、次のように指定した階層のディレクトリがまとめて作成されていることがわかります。

Javaで(階層的に)ディレクトリを作成するにはどうすればよいですか?

従来の方法:File.mkdirs() を使う

旧来の File クラスにある mkdirs() メソッドでも、同じように階層的なディレクトリを作成できます。このメソッドは、オブジェクトが表すパスのディレクトリを、存在しない親ディレクトリも含めて作成し、成功・失敗をboolean値で返します。

サンプルコード

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class Demo {
    public static void main(String args[]) throws IOException {
        System.out.println("ディレクトリを作成するパスを入力してください:");
        Scanner sc = new Scanner(System.in);
        String pathStr = sc.next();

        System.out.println("作成したいディレクトリの階層を入力してください:");
        pathStr = pathStr + sc.next();

        // Fileオブジェクトを生成
        File file = new File(pathStr);

        // ディレクトリ階層を作成
        boolean bool = file.mkdirs();

        if (bool) {
            System.out.println("ディレクトリが正常に作成されました");
        } else {
            System.out.println("申し訳ありませんが、指定されたディレクトリを作成できませんでした");
        }
    }
}

実行結果

ディレクトリを作成するパスを入力してください:
D:
作成したいディレクトリの階層を入力してください:
sample1/sample2/sample3/final_directory

こちらも同様に、実行後にファイルシステムを確認すると、指定した階層のディレクトリが作成されていることが確認できます。

Javaで(階層的に)ディレクトリを作成するにはどうすればよいですか?

どちらを使うべきか

新規開発では、例外処理が明確で失敗時に原因を把握しやすい NIO.2 の Files.createDirectories() を使うのがおすすめです。また、既に同名のディレクトリが存在していても例外がスローされないため、安全に呼び出せます。一方、Java 6以前との互換性が必要なレガシーコードでは File.mkdirs() が依然として有効な選択肢となります。用途に応じて使い分けるとよいでしょう。

  1. Javaでディレクトリ階層を作成する方法|mkdirs()メソッドの使い方を解説

    java.ioパッケージに含まれるFileクラスは、システム上のファイルやディレクトリ(パス名)を表現するためのクラスです。このクラスには、ファイルやディレクトリに対してさまざまな操作を行うためのメソッドが数多く用意されています。 mkdir()メソッドを使用すると、現在のFileオブジェクトが表すパスにディレクトリを1つ作成できます。ただし、このメソッドは親ディレクトリが存在しない場合には失敗するという点に注意が必要です。 ディレクトリ階層を作成するには? 複数階層からなる新しいディレクトリ構造を一括で作成したい場合は、同じFileクラスのmkdirs()メソッドを使用します。このメソッドは

  2. JavaでJSONファイルを作成する方法をわかりやすく解説

    JSON(JavaScript Object Notation)は、人間が読みやすい形式でデータを交換するために設計された、軽量なテキストベースのオープン標準フォーマットです。JSONの記法は、C、C++、Java、Python、Perlなど、多くのプログラミング言語に精通したプログラマーにとって馴染み深いものとなっています。 JSONドキュメントのサンプル 以下は、書籍情報を格納した典型的なJSONドキュメントの例です。 { book: [ { id: 01, language: Java, ed