Java java.nio.file.Files createDirectory()Methode

Java File Java java.nio.file.Files


java.nio.file.Files.createDirectory()ist eine Utility-Methode im Java NIO (New I/O)-Paket zum Erstellen eines neuen Verzeichnisses. Sie gehört zujava.nio.file.FilesUtility-Klasse, die eine einfache und sichere Möglichkeit bietet, ein einzelnes Verzeichnis zu erstellen.

Methodendefinition

public static Path createDirectory(Path dir, FileAttribute<?>... attrs) throws IOException

Parameterbeschreibung

  • dir: Der Pfad des zu erstellenden Verzeichnisses (Path-Objekt)
  • attrs(Optional): Eine optionale Liste von FileAttribute zum Festlegen von Verzeichnisattributen (wie Berechtigungen)

Rückgabewert

Gibt das Path-Objekt des erstellten Verzeichnisses zurück

Ausnahmen

  • IOException: Wenn ein I/O-Fehler auftritt
  • FileAlreadyExistsException: Wenn das Verzeichnis bereits existiert
  • SecurityException: Wenn keine ausreichende Berechtigung zum Erstellen des Verzeichnisses vorhanden ist

Grundlegendes Anwendungsbeispiel

Beispiel

import java.nio.file.*;

public class CreateDirectoryExample {
    public static void main(String[] args) {
        Path path = Paths.get("C:/test/new_directory");
       
        try {
            Files.createDirectory(path);
            System.out.println("Verzeichnis erfolgreich erstellt: " + path);
        } catch (IOException e) {
            System.err.println("Fehler beim Erstellen des Verzeichnisses: " + e.getMessage());
        }
    }
}

Methodeneigenschaften

1. Ein einzelnes Verzeichnis erstellen

createDirectory()Es kann nur ein einzelnes Verzeichnis erstellt werden. Wenn das übergeordnete Verzeichnis im Pfad nicht existiert, wird eine Ausnahme ausgelöst.NoSuchFileException。

2. Atomare Operation

Das Erstellen eines Verzeichnisses ist eine atomare Operation; sie gelingt entweder vollständig oder schlägt vollständig fehl.

3. Prüfung der Verzeichnisexistenz

Wenn das Verzeichnis bereits existiert, wird die Methode eine Ausnahme auslösen.FileAlreadyExistsException。


Unterschied zu createDirectories()

FilesDie Klasse bietet außerdemcreateDirectories()Methode. Die Hauptunterschiede zwischen den beiden sind:

Merkmal createDirectory() createDirectories()
Ein einzelnes Verzeichnis erstellen Ja Ja
Mehrstufige Verzeichnisse erstellen nein Ja
Wenn das übergeordnete Verzeichnis nicht existiert Löst eine Ausnahme aus Erstellt automatisch übergeordnete Verzeichnisse
Wenn das Verzeichnis bereits existiert Löst eine Ausnahme aus Wirft keine Ausnahme

Erweiterte Nutzung

1. Festlegen von Verzeichnisattributen

Beispiel

import java.nio.file.attribute.PosixFilePermissions;
import java.nio.file.attribute.PosixFilePermission;
import java.util.Set;

Path path = Paths.get("/path/to/new_directory");
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---");
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);

Files.createDirectory(path, attr);

2. Behandeln von Ausnahmen

Beispiel

try {
    Files.createDirectory(path);
} catch (FileAlreadyExistsException e) {
    System.err.println("Verzeichnis existiert bereits: " + path);
} catch (NoSuchFileException e) {
    System.err.println("Übergeordnetes Verzeichnis existiert nicht: " + e.getFile());
} catch (IOException e) {
    System.err.println("Anderer E/A-Fehler: " + e.getMessage());
}

Best Practices

  1. Prüfen Sie, ob das Verzeichnis existiert: Bevor Sie mit dem Erstellen beginnen, können Sie verwendenFiles.exists(path)um zu prüfen
  2. Behandeln Sie alle möglichen Ausnahmen: insbesondereFileAlreadyExistsExceptionundNoSuchFileException
  3. **Erwägen Sie die Verwendung von createDirectories(), wenn Sie mehrstufige Verzeichnisse erstellen müssen
  4. Legen Sie geeignete Berechtigungen fest: insbesondere in Mehrbenutzersystemen

Zusammenfassung

Files.createDirectory()ist die empfohlene Methode in Java NIO zum Erstellen eines einzelnen Verzeichnisses. Sie bietetFile.mkdir()umfangreichere Funktionalität und bessere Ausnahmebehandlung. Das Verständnis dieser Methode und ihrescreateDirectories()Unterschieds, der Entwicklern helfen kann, Dateisystemoperationen effektiver zu handhaben.

Java File Java java.nio.file.Files

Andere Erweiterungen