Java bestandspad, absoluut pad en canoniek pad

Vandaag zullen we kijken naar het Java-bestandspad. Het Java-bestandspad kan abstract, absoluut of canoniek zijn.

Java Bestandspad

java.io.File bevat drie methoden om het bestandspad te bepalen, we zullen ze verkennen in deze zelfstudie.

  1. getPath(): Deze methode voor bestandspad retourneert de abstracte bestandsnaam als een tekenreeks. Als een tekenreeks-padnaam wordt gebruikt om het File-object te maken, retourneert het eenvoudigweg het padnaamargument. Als URI als argument wordt gebruikt, wordt het protocol verwijderd en wordt de bestandsnaam geretourneerd.
  2. getAbsolutePath(): Deze methode voor bestandspad retourneert het absolute pad van het bestand. Als het bestand wordt gemaakt met een absoluut padnaam, retourneert het eenvoudigweg het padnaam. Als het bestandsobject wordt gemaakt met een relatief pad, wordt het absolute padnaam op een systeemafhankelijke manier opgelost. Op UNIX-systemen wordt een relatief padnaam absoluut gemaakt door het te resoluteren tegen de huidige gebruikersmap. Op Microsoft Windows-systemen wordt een relatief padnaam absoluut gemaakt door het te resoluteren tegen de huidige map van het station genaamd door het padnaam, indien aanwezig; zo niet, dan wordt het opgelost tegen de huidige gebruikersmap.
  3. [getCanonicalPath](https://docs.oracle.com/javase/7/docs/api/java/io/File.html#getCanonicalPath())(): Deze padmethode retourneert het canonieke pad dat zowel absoluut als uniek is. Deze methode zet dit pad eerst om naar absolute vorm indien nodig, alsof de getAbsolutePath-methode wordt aangeroepen, en mapt het vervolgens op zijn unieke vorm op een systeemafhankelijke manier. Dit omvat doorgaans het verwijderen van overbodige namen zoals “.” en “..” uit het pad, het oplossen van symbolische koppelingen (op UNIX-platforms) en het omzetten van stationsletters naar een standaardnotatie (op Microsoft Windows-platforms).

Java Bestandspad Voorbeeld

Laten we verschillende gevallen van het bestandspad in Java bekijken met een eenvoudig programma.

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);
		// relatief pad
		file = new File("test.xsd");
		printPaths(file);
		// complexe relatieve paden
		file = new File("/Users/pankaj/../pankaj/test.txt");
		printPaths(file);
		// URI-paden
		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());
	}

}

De onderstaande afbeelding toont de uitvoer geproduceerd door het bovenstaande Java-bestandspadprogramma. De uitvoer is zelfverklarend. Op basis van de uitvoer is het gebruik van het canonieke pad het meest geschikt om eventuele problemen als gevolg van relatieve paden te vermijden. Let ook op dat de Java-bestandspadmethoden niet controleren of het bestand bestaat of niet. Ze werken alleen op het pad van het bestand dat wordt gebruikt bij het maken van het Bestand-object. Dat is alles voor verschillende soorten bestandspaden in Java.

Je kunt meer Java IO-voorbeelden bekijken op onze GitHub-opslagplaats.

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