Suche…


Syntax

  • Paths.get (String first, String ... mehr) // Erstellt eine Path-Instanz anhand ihrer String-Elemente
  • Paths.get (URI uri) // Erstellt eine Pfadinstanz über einen URI

Pfade erstellen

Die Path Klasse wird verwendet, um einen Pfad im Dateisystem zu programmieren (und kann daher auf Dateien sowie Verzeichnisse verweisen, auch auf nicht vorhandene).

Ein Pfad kann mit der Hilfsklasse Paths abgerufen werden:

Path p1 = Paths.get("/var/www");
Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt");
Path p4 = Paths.get("/home", "arthur", "files", "diary.tex");

Informationen über einen Pfad abrufen

Informationen zu einem Pfad können mit den Methoden eines Path Objekts Path werden:

  • toString() gibt die String-Darstellung des Pfads zurück

    Path p1 = Paths.get("/var/www"); // p1.toString() returns "/var/www"
    
  • getFileName() gibt den Dateinamen (oder genauer das letzte Element des Pfads) zurück

    Path p1 = Paths.get("/var/www"); // p1.getFileName() returns "www"
    Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getFileName() returns "HHGTDG.odt"
    
  • getNameCount() gibt die Anzahl der Elemente zurück, die den Pfad bilden

    Path p1 = Paths.get("/var/www"); // p1.getNameCount() returns 2
    
  • getName(int index) gibt das Element am angegebenen Index zurück

    Path p1 = Paths.get("/var/www"); // p1.getName(0) returns "var", p1.getName(1) returns "www"
    
  • getParent() gibt den Pfad des übergeordneten Verzeichnisses zurück

    Path p1 = Paths.get("/var/www"); // p1.getParent().toString() returns "/var"
    
  • getRoot() gibt die Wurzel des Pfads zurück

    Path p1 = Paths.get("/var/www"); // p1.getRoot().toString() returns "/"
    Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getRoot().toString() returns "C:\\"
    

Pfade manipulieren

Zwei Wege verbinden

Pfade können mit der Methode resolve() werden. Der übergebene Pfad muss ein Teilpfad sein. Dies ist ein Pfad, der das Stammelement nicht enthält.

Path p5 = Paths.get("/home/");
Path p6 = Paths.get("arthur/files");
Path joined = p5.resolve(p6);
Path otherJoined = p5.resolve("ford/files");
joined.toString() == "/home/arthur/files"
otherJoined.toString() == "/home/ford/files"

Pfad normalisieren

Pfade können die Elemente enthalten . (was auf das aktuelle Verzeichnis verweist) und .. (das auf das übergeordnete Verzeichnis zeigt).

Bei Verwendung in einem Pfad . kann jederzeit entfernt werden, ohne das Ziel des Pfades zu ändern, und .. kann zusammen mit dem vorhergehenden Element entfernt werden.

Bei der Paths-API erfolgt dies mit der Methode .normalize() :

Path p7 = Paths.get("/home/./arthur/../ford/files");
Path p8 = Paths.get("C:\\Users\\.\\..\\Program Files");
p7.normalize().toString() == "/home/ford/files"
p8.normalize().toString() == "C:\\Program Files"

Informationen über das Dateisystem abrufen

Um mit dem Dateisystem zu interagieren, verwenden Sie die Methoden der Klasse Files .

Existenz prüfen

Um das Vorhandensein der Datei oder des Verzeichnisses zu überprüfen, auf das ein Pfad verweist, verwenden Sie die folgenden Methoden:

Files.exists(Path path)

und

Files.notExists(Path path)

!Files.exists(path) muss nicht notwendigerweise mit Files.notExists(path) , da es drei mögliche Szenarien gibt:

  • Der Datei oder das Verzeichnis Existenz überprüft wird ( exists kehrt true und notExists gibt false in diesem Fall)
  • Die Nichtexistenz einer Datei oder eines Verzeichnisses wird überprüft (Vorhanden exists false und notExists gibt true )
  • Weder die Existenz noch die Nichtexistenz einer Datei oder ein Verzeichnis kann (aufgrund von Zugangsbeschränkungen zum Beispiel) überprüft werden: Sowohl exists und nonExists false zurück.

Prüfen, ob ein Pfad auf eine Datei oder ein Verzeichnis verweist

Dies erfolgt mithilfe von Files.isDirectory(Path path) und Files.isRegularFile(Path path)

Path p1 = Paths.get("/var/www");
Path p2 = Paths.get("/home/testuser/File.txt");
Files.isDirectory(p1) == true
Files.isRegularFile(p1) == false

Files.isDirectory(p2) == false
Files.isRegularFile(p2) == true

Eigenschaften erhalten

Dies kann mit den folgenden Methoden erfolgen:

Files.isReadable(Path path)
Files.isWritable(Path path)
Files.isExecutable(Path path)

Files.isHidden(Path path)
Files.isSymbolicLink(Path path)

MIME-Typ abrufen

Files.probeContentType(Path path)

Dadurch wird versucht, den MIME-Typ einer Datei abzurufen. Es gibt einen MIME-Typ String wie folgt zurück:

  • text/plain für Textdateien
  • text/html für HTML-Seiten
  • application/pdf für PDF-Dateien
  • image/png für PNG-Dateien

Dateien lesen

Dateien können byte- und zeilenweise mit der Files Klasse gelesen werden.

Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
byte[] content = Files.readAllBytes(p2);
List<String> linesOfContent = Files.readAllLines(p2);

Files.readAllLines() nimmt optional einen Zeichensatz als Parameter (Standard ist StandardCharsets.UTF_8 ):

List<String> linesOfContent = Files.readAllLines(p2, StandardCharsets.ISO_8859_1);

Dateien schreiben

Dateien können mit der Files Klasse biss- und zeilenweise geschrieben werden

Path p2 = Paths.get("/home/testuser/File.txt");
List<String> lines = Arrays.asList(
    new String[]{"First line", "Second line", "Third line"});

Files.write(p2, lines);
Files.write(Path path, byte[] bytes)

Bestehende Dateien werden überschrieben, nicht vorhandene Dateien werden erstellt.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow