Fileクラス
mkdirメソッド
自身の抽象パス名が示す単一のディレクトリを作成します。
mkdir()
目次
1. mkdirメソッド
単一のディレクトリを作成します。
make directory と覚えるのがいいでしょう。
戻り値の boolean は、ディレクトリの作成に成功した場合には true
失敗した場合には false を返します。
すでに同名のディレクトリがった場合も、false を返します。
すでにあったら false
なんスね?
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ディレクトリが存在しないと失敗します。
//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");
}
}
}
実行前
ws
└----Sample08_02.java
*** parentディレクトリが存在しない場合 ***
コマンドライン
ws>javac -encoding UTF-8 Sample08_02.java
ws>java Sample08_02
ws>failure
引数の抽象パス名に、パス区切り文字が含まれている場合には、
親ディレクトリの有無を考慮する必要があります。
このあと紹介する mkdirsメソッドは、抽象パス名に含まれる親ディレクトリが無くても
親ディレクトリを含めて作成できます。
mkdirsメソッドについては、次のページで扱っていますので、そちらもご覧ください。
それなら最初から
mkdirsメソッド を使った方が
良くないスか?
う~ん...やっぱりダメ!
単一のディレクトリに
mkdirsは美しくない!
出たわね「美しくない」。
意味わかんないのよね~。
お疲れ様でした。