Java java.nio.file.Files createDirectory()Methode
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
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 auftrittFileAlreadyExistsException: Wenn das Verzeichnis bereits existiertSecurityException: Wenn keine ausreichende Berechtigung zum Erstellen des Verzeichnisses vorhanden ist
Grundlegendes Anwendungsbeispiel
Beispiel
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.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
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
- Prüfen Sie, ob das Verzeichnis existiert: Bevor Sie mit dem Erstellen beginnen, können Sie verwenden
Files.exists(path)um zu prüfen - Behandeln Sie alle möglichen Ausnahmen: insbesondere
FileAlreadyExistsExceptionundNoSuchFileException - **Erwägen Sie die Verwendung von createDirectories(), wenn Sie mehrstufige Verzeichnisse erstellen müssen
- 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 java.nio.file.Files