【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メソッドの構文は下記となります。

まず、mkdirメソッドが使用できるようにFileクラスをインポートします。

そして、ファイルの後にmkdirを呼び出すことでmkdirの前に指定したファイルのディレクトリを作成します。

また、返り値として作成できた場合はtrueを返し、作成できなかった場合はfalseを返します。
ディレクトリが既に存在する場合もspan class = “underRed”>falseを返します。

mkdirsメソッドとは

Fileクラスのmkdirsメソッドとは、親ディレクトリを含めて作成するメソッドになります。

mkdirsメソッドの書き方

Fileクラスのmkdirsメソッドの構文は下記となります。

まず、mkdirsメソッドが使用できるようにFileクラスをインポートします。

そして、ファイルの後にmkdirsを呼び出すことでmkdirsの前に指定したファイルの親ディレクトリを含めて作成します。

また、返り値として作成できた場合はtrueを返し、作成できなかった場合はfalseを返します。
ディレクトリが既に存在する場合もfalseを返します。

ディレクトリを作成するサンプルコード

ディレクトリを作成するサンプルコードを紹介します。

単一のディレクトリを作成する場合

出力結果

単一ディレクトリの作成結果:true

mkdirメソッドがtrueを返しているため、ディレクトリが作成されています。

また、サンプルコードを実行した後のディレクトリ構成は下記のようになります。

カレントディレクトリ
|ーーparentA

複数のディレクトリを作成する場合

出力結果

複数ディレクトリの作成結果:true

mkdirsメソッドがtrueを返しているため、ディレクトリが作成されています。

また、サンプルコードを実行した後のディレクトリ構成は下記のようになります。

カレントディレクトリ
|ーーparentA
        |ーーchildA

既にディレクトリが存在する場合

出力結果

単一ディレクトリの作成結果: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

出力結果

単一ディレクトリの作成結果: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メソッドでディレクトリの作成に失敗した場合でもいくつかの親ディレクトリが作成されている場合がある

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報