【Java】mkdir/mkdirsを使ってディレクトリを作成する!
ディレクトリを作成するにはFileクラスのmkdirメソッドとFileクラスのmkdirsメソッドを使用します。
Fileクラスのmkdirメソッドは、ディレクトリを作成するメソッドであり、Fileクラスのmkdirsメソッドは、親ディレクトリを含めて作成するメソッドです。
そのため、その場だけのディレクトリを作成したい場合はmkdirメソッドを、ディレクトリの階層をまとめて作成したい場合はmkdirsメソッドを使用します。
また、mkdirメソッドとmkdirsメソッドは戻り値としてディレクトリを作成できた場合はtrue、作成できなかった場合はfalseを返すためディレクトリを作成できたかどうかを確認することができます。
今回はFileクラスのmkdirメソッドとmkdirsメソッドを使って以下の場合でディレクトリを作成していきます。
⚫︎ 単一のディレクトリを作成する場合
⚫︎ 複数のディレクトリをまとめて作成する場合
⚫︎ 複数のディレクトリをまとめて作成する場合
また、Java7から使用できるようになったFilesクラスのcreateDirectoryメソッドとcreateDirectoriesメソッドを使って、ディレクトリを作成する方法についても紹介していきます。
目次
mkdirメソッドとは
Fileクラスのmkdirメソッドとは、ディレクトリを作成するメソッドになります。
mkdirメソッドの書き方
Fileクラスのmkdirメソッドの構文は下記となります。
1 2 3 |
import java.io.File; ファイル.mkdir(); |
まず、mkdirメソッドが使用できるようにFileクラスをインポートします。
そして、ファイルの後にmkdirを呼び出すことでmkdirの前に指定したファイルのディレクトリを作成します。
また、返り値として作成できた場合はtrueを返し、作成できなかった場合はfalseを返します。
ディレクトリが既に存在する場合もspan class = “underRed”>falseを返します。
mkdirsメソッドとは
Fileクラスのmkdirsメソッドとは、親ディレクトリを含めて作成するメソッドになります。
mkdirsメソッドの書き方
Fileクラスのmkdirsメソッドの構文は下記となります。
1 2 3 |
import java.io.File; ファイル.mkdirs(); |
まず、mkdirsメソッドが使用できるようにFileクラスをインポートします。
そして、ファイルの後にmkdirsを呼び出すことでmkdirsの前に指定したファイルの親ディレクトリを含めて作成します。
また、返り値として作成できた場合はtrueを返し、作成できなかった場合はfalseを返します。
ディレクトリが既に存在する場合もfalseを返します。
ディレクトリを作成するサンプルコード
ディレクトリを作成するサンプルコードを紹介します。
単一のディレクトリを作成する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// ディレクトリを作成する import java.io.File; public class Main { public static void main(String[] args) throws Exception { // 作成するディレクトリ File fileA = new File("parentA"); // ディレクトリを作成する System.out.println( "単一ディレクトリの作成結果:" + fileA.mkdir()); } } |
出力結果
単一ディレクトリの作成結果:true
mkdirメソッドがtrueを返しているため、ディレクトリが作成されています。
また、サンプルコードを実行した後のディレクトリ構成は下記のようになります。
カレントディレクトリ
|ーーparentA
複数のディレクトリを作成する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 |
// ディレクトリを作成する import java.io.File; public class Main { public static void main(String[] args) throws Exception { // 作成するディレクトリ File fileA = new File("parentA", "childA"); System.out.println( "複数ディレクトリの作成結果:" + fileA.mkdirs()); } } |
出力結果
複数ディレクトリの作成結果:true
mkdirsメソッドがtrueを返しているため、ディレクトリが作成されています。
また、サンプルコードを実行した後のディレクトリ構成は下記のようになります。
カレントディレクトリ
|ーーparentA
|ーーchildA
既にディレクトリが存在する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// ディレクトリを作成する import java.io.File; public class Main { public static void main(String[] args) throws Exception { // 作成するディレクトリ File fileA = new File("parentA"); File fileB = new File("parentB", "childB"); // ディレクトリを作成する System.out.println( "単一ディレクトリの作成結果:" + fileA.mkdir()); System.out.println( "複数ディレクトリの作成結果:" + fileB.mkdirs()); } } |
出力結果
単一ディレクトリの作成結果:false
複数ディレクトリの作成結果:false
既にディレクトリが存在する場合は両メソッドともfalseを返します。
NIO.2(Filesクラス)を使用してディレクトリを作成する場合
NIO.2とはJava7で導入された「java.nio.file」パッケージとそのサブパッケージとを合わせたものであり、NIO.2のFilesクラスを使用することでとても簡単にファイル処理を行うことができます。
そのため、FilesクラスのcreateDirectoryメソッドはFileクラスのmkdirメソッドに、FilesクラスのcreateDirectoriesメソッドはFileクラスのmkdirsメソッドに対応します。
createDirectoryメソッドとcreateDirectoriesメソッドでは、ディレクトリの作成に失敗した場合は例外が発生します。
ただし、createDirectoriesメソッドでは、ディレクトリの作成に失敗した場合でも、いくつかの親ディレクトリが作成されている場合があります。
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// ディレクトリを作成する import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { //作成するディレクトリ Path path1 = Paths.get("parentA"); Path path2 = Paths.get("parentB", "childB"); // ディレクトリを作成する System.out.println( "単一ディレクトリの作成結果:" + Files.createDirectory(path1)); System.out.println( "複数ディレクトリの作成結果:" + Files.createDirectories(path2)); } } |
出力結果
単一ディレクトリの作成結果:parenA
複数ディレクトリの作成結果:C:\Users\user1\workspace\parentB\childB
サンプルコードであるMain.javaを実行するとディレクトリが作成されます。
また、Main.javaを実行した後のディレクトリは下記のようになります。
カレントディレクトリ
|ーーparentA
|ーーparentB
|ーーchildB
今回のポイント
mkdirやmkdirsでディレクトリを作成
ディレクトリを作成するにはFileクラスのmkdirとメソッドやFileクラスのmkdirsメソッドを使用する。
⚫︎ Fileクラスのmkdirメソッドで、ディレクトリを作成することができる
⚫︎ mkdirメソッドでディレクトリが作成された場合は「true」を返し、作成するディレクトリがすでに存在する場合は、「false」を返す
⚫︎ Fileクラスのmkdirsメソッドで親ディレクトリも含めて作成することができる
⚫︎ mkdirsメソッドではではすべてのディレクトが作成が成功した場合に「true」を返し、失敗した場合には 「false」を返す
⚫︎ mkdirsメソッドでディレクトリの作成に失敗した場合でもいくつかの親ディレクトリが作成されている場合がある
createDirectoryやcreateDirectoriesでディレクトリを作成
Filesクラスでディレクトリを作成するにはcreateDirectoryメソッドやcreateDirectoriesメソッド使用する。
⚫︎ createDirectoryメソッドはmkdirメソッドに、createDirectoriesメソッドはmkdirsメソッドに対応する
⚫︎ createDirectoryメソッドとcreateDirectoriesメソッドは作成したいディレクトリ名をパラメータとして指定する
⚫︎ createDirectoryメソッドとcreateDirectoriesメソッドでは、ディレクトリの作成に失敗した場合は例外が発生する
⚫︎ mkdirsメソッド同様にcreateDirectoriesメソッドでディレクトリの作成に失敗した場合でもいくつかの親ディレクトリが作成されている場合がある
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。