Javaでディレクトリを作成する

1. 概要

Javaでディレクトリを作成するのは非常に簡単です。 この言語は、単一のディレクトリまたは複数のネストされたディレクトリ(create_mkdir()_および_mkdirs()_)を作成できる2つのメソッドを提供します。
このチュートリアルでは、両方の動作を確認します。

2. 単一のディレクトリを作成する

単一のディレクトリの作成から始めましょう。
この目的のために、ユーザー_temp_ディレクトリを使用します。 __System.getProperty(“java.io.tmpdirâ)で検索できます。
このパスを、一時ディレクトリを表すJava _File_オブジェクトに渡します。
private static final File TEMP_DIRECTORY = new File(System.getProperty("java.io.tmpdir"));
次に、その中に新しいディレクトリを作成しましょう。 *作成するディレクトリを表す新しい_File_オブジェクトで_File

mkdir_メソッドを呼び出すことでこれを実現します:*

File newDirectory = new File(TEMP_DIRECTORY, "new_directory");
assertFalse(newDirectory.exists());
assertTrue(newDirectory.mkdir());
*ディレクトリがまだ存在しないことを確認するために、最初に_exists()_メソッドを使用しました。*
次に、ディレクトリの作成が成功したかどうかを示す_mkdir()_メソッドを呼び出しました。 ディレクトリがすでに存在する場合、メソッドは_false_を返します。
同じ呼び出しを再度行う場合:
assertTrue(newDirectory.exists());
assertFalse(newDirectory.mkdir());
次に、予想どおり、メソッドは2回目の呼び出しで_false_を返します。
*そして、_mkdir()_メソッドは、ディレクトリが既に存在する場合に_false_を返すだけではありません* https://twitter.com/steveloughran/status/1087427627869261825 [他の状況でも]。 たとえば、作成するディレクトリの名前を持つファイルが存在する場合があります。 または、このディレクトリを作成する権限が不足している可能性があります。
それを念頭に置いて、ディレクトリを最後に作成するか、すでに作成してあるかを確認する方法を見つける必要があります。 そのために、https://twitter.com/steveloughran/status/1087428893882175490 [_isDirectory()_メソッドを使用できます]:
newDirectory.mkdir() || newDirectory.isDirectory()
そのようにして、必要なディレクトリがそこにあることを確認します。

3. 複数のネストされたディレクトリを作成する

これまで見てきたことは、単一のディレクトリでうまく機能しますが、複数のネストされたディレクトリを作成したい場合はどうなりますか?
次の例では、_File

mkdir_が機能しないことがわかります。

File newDirectory = new File(TEMP_DIRECTORY, "new_directory");
File nestedDirectory = new File(newDirectory, "nested_directory");
assertFalse(newDirectory.exists());
assertFalse(nestedDirectory.exists());
assertFalse(nestedDirectory.mkdir());
_new_directory_は存在しないため、_mkdir_は基礎となる_nested_directory_を作成しません。
*ただし、_File_クラスはそれを実現する別のメソッドを提供します-â_mkdirs()_。*このメソッドは_mkdir()_と同様に動作しますが、存在しない親ディレクトリもすべて作成します。
前の例では、これは_nested_directory_だけでなく_new_directory._も作成することを意味します
これまでは_File(File、String)_コンストラクタを使用していましたが、* _File(String)_コンストラクタを使用し、_File.separator_ *を使用してファイルの完全なパスを渡し、パスのさまざまな部分を分離することもできます。 :
File newDirectory = new File(System.getProperty("java.io.tmpdir") + File.separator + "new_directory");
File nestedDirectory = new File(newDirectory, "nested_directory");
assertFalse(newDirectory.exists());
assertFalse(nestedDirectory.exists());
assertTrue(nestedDirectories.mkdirs());
ご覧のとおり、ディレクトリは期待どおりに作成されます。 *さらに、このメソッドは、少なくとも1つのディレクトリが作成されたときにのみ_true_を返します。 _mkdir()_メソッドについては、他の場合は_false_を返します。*
したがって、これは、親が存在するディレクトリで使用される_mkdirs()_メソッドが_mkdir()_メソッドと同じように機能することを意味します。

4. 結論

この記事では、Javaでディレクトリーを作成できる2つのメソッドを見てきました。 最初の1つ、_mkdir()_は、その親がすでに存在する場合、単一のディレクトリの作成を対象としています。 2番目の_mkdirs()_は、ディレクトリとその存在しない親を作成できます。
この記事のコードはhttps://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-io[GitHub上]にあります。