mkdirメソッド - Fileクラス - 萌えJava超入門
Fileクラス

mkdirメソッド

自身の抽象パス名が示す単一のディレクトリを作成します。

mkdir()

目次

1. mkdirメソッド


単一のディレクトリを作成します。
make directory と覚えるのがいいでしょう。
戻り値の boolean は、ディレクトリの作成に成功した場合には true
失敗した場合には false を返します。
すでに同名のディレクトリがった場合も、false を返します。

萌えJava超入門 萌えJava超入門
すでにあったら false
なんスね?

萌えJava超入門
 public boolean mkdir()

mkdirメソッド 書式
File file;
 boolean bool = file.mkdir();



2. サンプルコード

mkdirメソッドで実際にディレクトリを作成してみましょう。

//Sample08_01.java

import java.io.File;

class Sample08_01{
    public static void main(String[] args){
          File file = new File("dir01");
          boolean success = file.mkdir();
          if(success){
              System.out.println("success");
          }else{
              System.out.println("failure");
          }
    }
}

コマンドライン
>cd ws
ws>javac Sample08_01.java
ws>java Sample08_01
ws>success
ws>java Sample08_01  ←もう一度やってみる。
ws>failure    ←すでに dir01ディレクトリがあるので 失敗

wsディレクトリ内に、dir01 ディレクトリが出来れば成功です。

結果
    ws
    |----dir01
    |----Sample08_01.class
    └----Sample08_01.java





3. 複数階層のディレクトリは一度に生成できない

mkdirメソッドは、存在しないディレクトリにディレクトリを作成することはできません。
Sample08_02 では、wsディレクトリ内の parentディレクトリ に child01ディレクトリを作成することを期待していますが、
parentディレクトリが存在しないと失敗します。
(parentディレクトリがあれば成功します。)

//Sample08_02.java
//動作しますが、オススメできないコードです。
import java.io.File;

class Sample08_02{
    public static void main(String[] args){
        File file = new File("parent/child01");
        boolean success = file.mkdir();
        if(success){
            System.out.println("success");
        }else{
            System.out.println("failure");
        }
    }
}
抽象パス名にパス区切り文字が含まれる場合には、mkdirsメソッドがオススメ。


実行前
    ws
    └----Sample08_02.java

        *** parentディレクトリが存在しない場合 ***

コマンドライン
ws>javac -encoding UTF-8 Sample08_02.java
ws>java Sample08_02
ws>failure

引数の抽象パス名に、パス区切り文字が含まれている場合には、
親ディレクトリの有無を考慮する必要があります。
このあと紹介する mkdirsメソッドは、抽象パス名に含まれる親ディレクトリが無くても
親ディレクトリを含めて作成できます。
mkdirsメソッドについては、次のページで扱っていますので、そちらもご覧ください。


萌えJava超入門
それなら最初から
mkdirsメソッド を使った方が
良くないスか?



萌えJava超入門
う~ん...やっぱりダメ!
単一のディレクトリに mkdirsは美しくない!
個人の感想です。

萌えJava超入門
出たわね「美しくない」。
意味わかんないのよね~。


お疲れ様でした。




© 2019 awasekagami