Javaでディレクトリ階層を作成する方法|mkdirs()メソッドの使い方を解説
java.ioパッケージに含まれるFileクラスは、システム上のファイルやディレクトリ(パス名)を表現するためのクラスです。このクラスには、ファイルやディレクトリに対してさまざまな操作を行うためのメソッドが数多く用意されています。
mkdir()メソッドを使用すると、現在のFileオブジェクトが表すパスにディレクトリを1つ作成できます。ただし、このメソッドは親ディレクトリが存在しない場合には失敗するという点に注意が必要です。
ディレクトリ階層を作成するには?
複数階層からなる新しいディレクトリ構造を一括で作成したい場合は、同じFileクラスのmkdirs()メソッドを使用します。このメソッドは、現在のオブジェクトが表すパスにディレクトリを作成する際、存在しない親ディレクトリも自動的にまとめて作成してくれるのが大きな特徴です。
例えば「D:\test\myDirectories\sample_directory」というパスを指定した場合、「test」や「myDirectories」などのフォルダがまだ存在しなくても、必要な階層すべてが一度に生成されます。
サンプルコード
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 ディレクトリが正常に作成されました
実行後にファイルエクスプローラーなどで確認すると、指定したパスにディレクトリ階層が正しく作成されていることがわかります。
mkdir()とmkdirs()の違いまとめ
- mkdir():最後の1階層のみを作成。親ディレクトリが存在しない場合は失敗する(falseを返す)。
- mkdirs():存在しない親ディレクトリも含め、必要な階層をすべて一括で作成する。
なお、どちらのメソッドも戻り値はboolean型で、作成に成功した場合はtrue、失敗した場合はfalseが返されます。失敗の主な原因としては、書き込み権限がない、同名のファイルが既に存在する、パスが不正であるなどが挙げられます。確実な処理を実装するためにも、戻り値を必ずチェックするようにしましょう。
-
Javaで画像を左右反転!ミラーイメージ(鏡像)の作成方法を解説
画像を鏡のように左右反転させた「ミラーイメージ」は、Javaの標準ライブラリである ImageIO と BufferedImage を使えば簡単に作成できます。基本的な仕組みはシンプルで、元画像の各ピクセルを読み取り、その位置を水平方向に反転させて新しい画像へ書き込むだけです。ここでは、その具体的な手順とサンプルコードを紹介します。 ミラーイメージを作成する手順 ImageIO.read() メソッドを使用して、対象となる画像を読み込みます。 読み込んだ画像の高さと幅を取得します。 結果を格納するための空の BufferedImage オブジェクトを作成します。 ネストした for ループを
-
JavaでJSONファイルを作成する方法をわかりやすく解説
JSON(JavaScript Object Notation)は、人間が読みやすい形式でデータを交換するために設計された、軽量なテキストベースのオープン標準フォーマットです。JSONの記法は、C、C++、Java、Python、Perlなど、多くのプログラミング言語に精通したプログラマーにとって馴染み深いものとなっています。 JSONドキュメントのサンプル 以下は、書籍情報を格納した典型的なJSONドキュメントの例です。 { book: [ { id: 01, language: Java, ed