Java-Dateipfad, absoluter Pfad und kanonischer Pfad

Heute werden wir uns den Java-Dateipfad ansehen. Der Java-Dateipfad kann abstrakt, absolut oder kanonisch sein.

Java-Dateipfad

java.io.File enthält drei Methoden zur Bestimmung des Dateipfads, die wir in diesem Tutorial erkunden werden.

  1. getPath(): Diese Dateipfadmethode gibt den abstrakten Dateinamen als Zeichenfolge zurück. Wenn eine Zeichenfolge als Pfadname verwendet wird, um ein Dateiobjekt zu erstellen, gibt es einfach das Pfadnamenargument zurück. Wenn URI als Argument verwendet wird, entfernt es einfach das Protokoll und gibt den Dateinamen zurück.
  2. getAbsolutePath(): Diese Dateipfadmethode gibt den absoluten Pfad der Datei zurück. Wenn die Datei mit einem absoluten Pfadnamen erstellt wird, gibt sie einfach den Pfadnamen zurück. Wenn das Dateiobjekt mit einem relativen Pfad erstellt wird, wird der absolute Pfadnamen auf eine systemabhängige Weise aufgelöst. Auf UNIX-Systemen wird ein relativer Pfadname absolut gemacht, indem er gegen das aktuelle Benutzerverzeichnis aufgelöst wird. Auf Microsoft-Windows-Systemen wird ein relativer Pfadname absolut gemacht, indem er gegen das aktuelle Verzeichnis des Laufwerksnamens des Pfadnamens aufgelöst wird, falls vorhanden; falls nicht, wird er gegen das aktuelle Benutzerverzeichnis aufgelöst.
  3. [getCanonicalPath](https://docs.oracle.com/javase/7/docs/api/java/io/File.html#getCanonicalPath())(): Diese Pfadmethode gibt den kanonischen Dateipfad zurück, der sowohl absolut als auch eindeutig ist. Diese Methode wandelt diesen Pfad zunächst in absolute Form um, falls erforderlich, als ob die Methode getAbsolutePath aufgerufen würde, und ordnet ihn dann systemabhängig seiner eindeutigen Form zu. Dies beinhaltet typischerweise das Entfernen überflüssiger Namen wie „.“ und „…“ aus dem Pfadnamen, das Auflösen von symbolischen Links (auf UNIX-Plattformen) und das Konvertieren von Laufwerksbuchstaben in eine Standard-Schreibweise (auf Microsoft Windows-Plattformen).

Java-Dateipfad Beispiel

Lassen Sie uns verschiedene Fälle des Dateipfads in Java mit einem einfachen Programm sehen.

package com.journaldev.files;

import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class JavaFilePath {

	public static void main(String[] args) throws IOException, URISyntaxException {
		File file = new File("/Users/pankaj/test.txt");
		printPaths(file);
		// relativer Pfad
		file = new File("test.xsd");
		printPaths(file);
		// komplexe relative Pfade
		file = new File("/Users/pankaj/../pankaj/test.txt");
		printPaths(file);
		// URI-Pfade
		file = new File(new URI("file:///Users/pankaj/test.txt"));
		printPaths(file);
	}

	private static void printPaths(File file) throws IOException {
		System.out.println("Absolute Path: " + file.getAbsolutePath());
		System.out.println("Canonical Path: " + file.getCanonicalPath());
		System.out.println("Path: " + file.getPath());
	}

}

Das folgende Bild zeigt die Ausgabe des oben genannten Java-Dateipfadprogramms. Die Ausgabe ist selbsterklärend. Basierend auf der Ausgabe ist die Verwendung des kanonischen Pfads am besten geeignet, um Probleme aufgrund relativer Pfade zu vermeiden. Beachten Sie auch, dass die Java-Dateipfadmethoden nicht überprüfen, ob die Datei existiert oder nicht. Sie arbeiten nur mit dem Dateipfad des beim Erstellen des File-Objekts verwendeten Dateipfads. Das ist alles für verschiedene Arten des Dateipfads in Java.

Sie können weitere Java-IO-Beispiele aus unserem GitHub-Repository überprüfen.

Source:
https://www.digitalocean.com/community/tutorials/java-file-path-absolute-canonical