0Pricing
Java Academy · Lezione

Path: rappresentare i percorsi dei file

Crei oggetti Path, risolva e renda relativi i percorsi e manipoli i relativi componenti.

Path: rappresentare i percorsi dei file è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.

Introduzione a Path

L'interfaccia java.nio.file.Path rappresenta la posizione di un file o di una directory nel file system. Sostituisce la classe legacy java.io.File con un'API più ricca e indipendente dalla piattaforma.

import java.nio.file.*;

Path p1 = Path.of("/home/user/documents/report.txt");
Path p2 = Paths.get("/home", "user", "documents", "report.txt");

System.out.println(p1); // /home/user/documents/report.txt
System.out.println(p1.equals(p2)); // true

Componenti di Path

Estragga i componenti di un percorso:

Path path = Path.of("/home/user/docs/report.txt");

System.out.println(path.getFileName()); // report.txt
System.out.println(path.getParent());   // /home/user/docs
System.out.println(path.getRoot());     // /
System.out.println(path.getNameCount()); // 4
System.out.println(path.getName(0));    // home
System.out.println(path.getName(3));    // report.txt

Percorsi relativi e assoluti

Un percorso può essere assoluto (parte dalla radice) o relativo (parte dalla directory corrente). Utilizzi isAbsolute() per verificarlo e toAbsolutePath() per risolvere un percorso relativo rispetto alla directory di lavoro corrente.

Path rel = Path.of("docs/report.txt");
Path abs = Path.of("/home/user/docs/report.txt");

System.out.println(rel.isAbsolute()); // false
System.out.println(abs.isAbsolute()); // true

Path resolved = rel.toAbsolutePath(); // resolves against CWD
System.out.println(resolved);

resolve: combinazione di percorsi

resolve(other) aggiunge un altro percorso. Se other è assoluto, sostituisce interamente il percorso corrente.

Path base = Path.of("/home/user");
Path docs = base.resolve("documents");
Path file = docs.resolve("report.txt");

System.out.println(file); // /home/user/documents/report.txt

// Resolving an absolute path replaces:
Path abs = base.resolve(Path.of("/etc/config"));
System.out.println(abs); // /etc/config

relativize: calcolo di percorsi relativi

relativize(other) calcola il percorso relativo da questo percorso a other:

Path from = Path.of("/home/user");
Path to   = Path.of("/home/user/docs/report.txt");

Path rel = from.relativize(to);
System.out.println(rel); // docs/report.txt

// Verify:
System.out.println(from.resolve(rel)); // /home/user/docs/report.txt

normalize: rimozione delle ridondanze

normalize() rimuove i segmenti . e .. da un percorso:

Path messy = Path.of("/home/user/../user/./docs/./report.txt");
Path clean = messy.normalize();
System.out.println(clean); // /home/user/docs/report.txt

startsWith ed endsWith

Verifichi le relazioni tra prefissi e suffissi dei percorsi:

Path p = Path.of("/home/user/docs/report.txt");

System.out.println(p.startsWith("/home/user")); // true
System.out.println(p.startsWith("/home/other")); // false
System.out.println(p.endsWith("report.txt"));    // true
System.out.println(p.endsWith("docs/report.txt")); // true

Conversione in File e URI

Converta un Path nella classe legacy File o in un URI quando necessario:

Path path = Path.of("/home/user/report.txt");

java.io.File file = path.toFile();
System.out.println(file.exists()); // depends on filesystem

java.net.URI uri = path.toUri();
System.out.println(uri); // file:///home/user/report.txt

Path su piattaforme diverse

Path.of() utilizza il separatore della piattaforma. Su Windows i percorsi utilizzano la barra rovesciata, mentre su Unix utilizzano la barra normale. L'API gestisce questa differenza in modo trasparente.

// Portable path construction (works on all platforms):
Path config = Path.of("config", "app", "settings.json");
// On Unix: config/app/settings.json
// On Windows: config\app\settings.json
System.out.println(config);

Iterazione sugli elementi di Path

Utilizzi un ciclo for-each o iterator() per iterare sui singoli elementi di nome:

Path path = Path.of("/home/user/docs/report.txt");

for (Path element : path) {
    System.out.println(element); // home, user, docs, report.txt
}
// Note: root ("/") is not included in iteration

subpath: estrazione di una porzione

subpath(begin, end) restituisce un percorso relativo per un intervallo di elementi di nome:

Path p = Path.of("/home/user/docs/report.txt");
// Indices: home=0, user=1, docs=2, report.txt=3

System.out.println(p.subpath(1, 3)); // user/docs
System.out.println(p.subpath(0, 2)); // home/user

Verifica rapida

Dato Path.of("/home/user").resolve("docs/file.txt"), qual è il risultato?

Riepilogo: API Path

Punti chiave:

  • Path.of() / Paths.get() creano istanze di Path
  • getFileName, getParent, getRoot, getName, getNameCount per i componenti
  • resolve() aggiunge; relativize() calcola il percorso relativo; normalize() elimina ./ e ../
  • startsWith/endsWith per verificare prefissi e suffissi
  • Indipendente dalla piattaforma: il separatore viene gestito automaticamente

Domande Frequenti

La lezione «Path: rappresentare i percorsi dei file» è gratuita?

Sì — il testo completo di «Path: rappresentare i percorsi dei file» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.

Cosa imparerò in «Path: rappresentare i percorsi dei file»?

Crei oggetti Path, risolva e renda relativi i percorsi e manipoli i relativi componenti. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Path: rappresentare i percorsi dei file»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Path: rappresentare i percorsi dei file
  2. Utility Files: leggere, scrivere, copiare e spostare
  3. Attraversare gli alberi di directory con Files.walk
  4. WatchService: monitorare le modifiche ai file
← Torna a Java Academy