Percorso del File Java, Percorso Assoluto e Percorso Canonico

Oggi esamineremo il percorso del file Java. Il percorso del file Java può essere astratto, assoluto o canonico.

Percorso del file Java

java.io.File contiene tre metodi per determinare il percorso del file, li esploreremo in questo tutorial.

  1. getPath(): Questo metodo del percorso del file restituisce il percorso del file astratto come stringa. Se viene utilizzata una stringa pathname per creare un oggetto File, restituisce semplicemente l’argomento del pathname. Se viene utilizzato un URI come argomento, rimuove il protocollo e restituisce il nome del file.
  2. getAbsolutePath(): Questo metodo del percorso del file restituisce il percorso assoluto del file. Se il file è creato con un percorso assoluto, restituisce semplicemente il percorso. Se l’oggetto file è creato utilizzando un percorso relativo, il percorso assoluto viene risolto in modo dipendente dal sistema. Nei sistemi UNIX, un percorso relativo viene reso assoluto risolvendolo contro la directory utente corrente. Nei sistemi Microsoft Windows, un percorso relativo viene reso assoluto risolvendolo contro la directory corrente del drive denominato dal percorso, se presente; in caso contrario, viene risolto contro la directory utente corrente.
  3. [getCanonicalPath](https://docs.oracle.com/javase/7/docs/api/java/io/File.html#getCanonicalPath())(): Questo metodo del percorso restituisce il percorso canonico che è sia assoluto che unico. Questo metodo converte prima questo percorso nella forma assoluta se necessario, come se stesse invocando il metodo getAbsolutePath, e poi lo mappa nella sua forma unica in modo dipendente dal sistema. Questo comporta tipicamente la rimozione di nomi ridondanti come “.” e “..” dal percorso, la risoluzione dei collegamenti simbolici (su piattaforme UNIX) e la conversione delle lettere di unità in un formato standard (su piattaforme Microsoft Windows).

Esempio di percorso file Java

Vediamo diversi casi del percorso del file in Java con un semplice 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);
		// percorso relativo
		file = new File("test.xsd");
		printPaths(file);
		// percorsi relativi complessi
		file = new File("/Users/pankaj/../pankaj/test.txt");
		printPaths(file);
		// percorsi URI
		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());
	}

}

L’immagine seguente mostra l’output prodotto dal programma del percorso del file Java sopra. L’output è autoesplicativo. In base all’output, utilizzare il percorso canonico è il più adatto per evitare problemi a causa di percorsi relativi. Inoltre, si noti che i metodi del percorso del file Java non verificano se il file esiste o meno. Funzionano solo sul percorso del file usato durante la creazione dell’oggetto File. Questo è tutto per i diversi tipi di percorso file in Java.

Puoi controllare più esempi di Java IO dal nostro Repository GitHub.

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