誰でもこれら2つの方法の違いを教えてもらえますか:
file.mkdir()
file.mkdirs()
mkdirs()
これが表すパスに親ディレクトリも作成します。File
のjavadocmkdirs()
:
必要だが存在しない親ディレクトリを含め、この抽象パス名で指定されたディレクトリを作成します。この操作が失敗した場合、必要な親ディレクトリの作成に成功している可能性があることに注意してください。
のjavadocmkdir()
:
この抽象パス名で指定されたディレクトリを作成します。
例:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
false
最初の[そしてディレクトリは作成されません]、true
2番目の場合は生成され、作成されますnon_existing_dir/someDir
mkdirs()
は、指定されたディレクトリ パス全体をmkdir()
作成しますが、作成しようとしているディレクトリの親ディレクトリが見つからない場合は失敗し、一番下のディレクトリのみが作成されます。
言い換えれば、のmkdir()
ようmkdir
であり、mkdirs()
のようmkdir -p
です。
たとえば、空の/tmp
ディレクトリがあるとします。次のコード
new File("/tmp/one/two/three").mkdirs();
次のディレクトリが作成されます。
/tmp/one
/tmp/one/two
/tmp/one/two/three
このコードの場所:
new File("/tmp/one/two/three").mkdir();
ディレクトリを作成せず/tmp/one/two
(見つからないため)、 を返しfalse
ます。
mkdir()
ディレクトリが親である場合、一度に 1 つのディレクトリのみを作成します。それ以外の場合は、サブディレクトリを作成でき (指定されたパスが存在する場合のみ)、2 つのディレクトリの間にディレクトリを作成しません。そのため、1 つのディレクトリに複数のディレクトリを作成することはできません
mkdirs()
一度に複数のディレクトリを(2つのディレクトリの間にも)作成します。