Erstellen Sie ein Verzeichnis in Java

1. Übersicht

Das Erstellen eines Verzeichnisses mit Java ist ziemlich einfach. Die Sprache bietet uns zwei Methoden, mit denen wir entweder ein einzelnes Verzeichnis oder mehrere verschachtelte Verzeichnisse erstellen können - mkdir () und mkdirs () .

In diesem Tutorial werden wir sehen, wie sich beide verhalten.

2. Erstellen Sie ein einzelnes Verzeichnis

Beginnen wir mit der Erstellung eines einzelnen Verzeichnisses.

Für unsere Zwecke verwenden wir das temporäre Benutzerverzeichnis . Wir können es mit System.getProperty ("java.io.tmpdir") nachschlagen .

Wir übergeben diesen Pfad an ein Java- Dateiobjekt , das unser temporäres Verzeichnis darstellt:

private static final File TEMP_DIRECTORY = new File(System.getProperty("java.io.tmpdir"));

Jetzt erstellen wir ein neues Verzeichnis darin. Dies erreichen wir, indem wir die File :: mkdir- Methode für ein neues File- Objekt aufrufen, das das zu erstellende Verzeichnis darstellt:

File newDirectory = new File(TEMP_DIRECTORY, "new_directory"); assertFalse(newDirectory.exists()); assertTrue(newDirectory.mkdir());

Um sicherzustellen, dass unser Verzeichnis noch nicht existiert, haben wir zuerst die Methode subsists () verwendet.

Dann haben wir die Methode mkdir () aufgerufen , die uns sagt, ob die Verzeichniserstellung erfolgreich war oder nicht. Wenn das Verzeichnis bereits vorhanden wäre, hätte die Methode false zurückgegeben .

Wenn wir wieder die gleichen Anrufe tätigen:

assertTrue(newDirectory.exists()); assertFalse(newDirectory.mkdir());

Dann gibt die Methode erwartungsgemäß beim zweiten Aufruf false zurück .

Und die Methode mkdir () gibt nicht nur false zurück, wenn das Verzeichnis bereits vorhanden ist, sondern auch in einigen anderen Situationen. Beispielsweise könnte eine Datei mit dem Namen des Verzeichnisses vorhanden sein, das wir erstellen möchten. Oder es fehlen uns die Berechtigungen zum Erstellen dieses Verzeichnisses.

In diesem Sinne müssen wir einen Weg finden, um sicherzustellen, dass unser Verzeichnis am Ende existiert, entweder wir haben es erstellt oder es war bereits da. Zu diesem Zweck könnten wir die Methode isDirectory () verwenden:

newDirectory.mkdir() || newDirectory.isDirectory()

Auf diese Weise stellen wir sicher, dass das benötigte Verzeichnis vorhanden ist.

3. Erstellen Sie mehrere verschachtelte Verzeichnisse

Was wir bisher gesehen haben, funktioniert gut in einem einzelnen Verzeichnis, aber was passiert, wenn wir mehrere verschachtelte Verzeichnisse erstellen möchten?

Im folgenden Beispiel sehen wir, dass File :: mkdir dafür nicht funktioniert:

File newDirectory = new File(TEMP_DIRECTORY, "new_directory"); File nestedDirectory = new File(newDirectory, "nested_directory"); assertFalse(newDirectory.exists()); assertFalse(nestedDirectory.exists()); assertFalse(nestedDirectory.mkdir());

Da das new_directory nicht vorhanden ist, erstellt mkdir das zugrunde liegende nested_directory nicht .

Die File- Klasse bietet uns jedoch eine andere Methode, um dies zu erreichen - mkdirs () . Diese Methode verhält sich wie mkdir (), erstellt jedoch auch alle nicht vorhandenen übergeordneten Verzeichnisse.

In unserem vorherigen Beispiel würde dies bedeuten, nicht nur das verschachtelte_Verzeichnis , sondern auch das neue_Verzeichnis zu erstellen.

Beachten Sie, dass wir bisher den Konstruktor Datei (Datei, Zeichenfolge) verwendet haben, aber wir können auch den Konstruktor Datei ( Zeichenfolge ) verwenden und den vollständigen Pfad unserer Datei mit File.separator übergeben , um die verschiedenen Teile des Pfads zu trennen:

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());

Wie wir sehen können, werden die Verzeichnisse wie erwartet erstellt. Darüber hinaus gibt die Methode nur dann true zurück , wenn mindestens ein Verzeichnis erstellt wurde. Die Methode mkdir () gibt in den anderen Fällen false zurück.

Daher bedeutet dies, dass die Methode mkdirs () , die in einem Verzeichnis verwendet wird, dessen übergeordnete Elemente vorhanden sind, genauso funktioniert wie die Methode mkdir () .

4. Fazit

In diesem Artikel haben wir zwei Methoden gesehen, mit denen wir Verzeichnisse in Java erstellen können. Das erste, mkdir () , zielt auf die Erstellung eines einzelnen Verzeichnisses ab, sofern die übergeordneten Elemente bereits vorhanden sind. Der zweite, mkdirs () , kann ein Verzeichnis sowie seine nicht vorhandenen Eltern erstellen.

Den Code dieses Artikels finden Sie auf unserem GitHub.