0Pricing
Java Academy · Leçon

Path : représenter des emplacements de fichiers

Créez des objets Path, résolvez et rendez relatives les chemins, puis manipulez leurs composants.

Path : représenter des emplacements de fichiers est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.

Introduction à Path

L'interface java.nio.file.Path représente l'emplacement d'un fichier ou d'un répertoire dans le système de fichiers. Elle remplace l'ancienne classe java.io.File par une API plus riche et indépendante de la plateforme.

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

Composants d'un chemin

Extrayez les composants d'un chemin :

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

Chemins relatifs et absolus

Un chemin peut être absolu (il part de la racine) ou relatif (il part du répertoire courant). Utilisez isAbsolute() pour le vérifier et toAbsolutePath() pour résoudre un chemin relatif par rapport au répertoire de travail courant.

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 : combiner des chemins

resolve(other) ajoute un autre chemin. Si other est absolu, il remplace entièrement le chemin courant.

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 : calculer des chemins relatifs

relativize(other) calcule le chemin relatif entre ce chemin et 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 : supprimer les redondances

normalize() supprime les segments . et .. d'un chemin :

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

startsWith et endsWith

Vérifiez les relations de préfixe et de suffixe entre les chemins :

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

Convertir en fichier et en URI

Convertissez un chemin en ancienne classe File ou en URI si nécessaire :

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 sur différentes plateformes

Path.of() utilise le séparateur de la plateforme. Sous Windows, les chemins utilisent une barre oblique inversée ; sous Unix, une barre oblique. L'API gère cette différence de manière transparente.

// 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);

Parcourir les éléments d'un chemin

Utilisez une boucle for-each ou iterator() pour parcourir les différents éléments de nom :

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 : extraire une portion

subpath(begin, end) renvoie un chemin relatif correspondant à une plage d'éléments de nom :

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

Vérification rapide

Étant donné Path.of("/home/user").resolve("docs/file.txt"), quel est le résultat ?

Récapitulatif : API Path

Points essentiels :

  • Path.of() / Paths.get() créent des instances de Path
  • getFileName, getParent, getRoot, getName et getNameCount permettent d'accéder aux composants
  • resolve() ajoute un chemin ; relativize() calcule un chemin relatif ; normalize() nettoie ./ et ../
  • startsWith/endsWith permettent de vérifier les préfixes et les suffixes
  • Indépendante de la plateforme — le séparateur est géré automatiquement

Questions Fréquemment Posées

La leçon « Path : représenter des emplacements de fichiers » est-elle gratuite ?

Oui — le texte complet de « Path : représenter des emplacements de fichiers » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Path : représenter des emplacements de fichiers » ?

Créez des objets Path, résolvez et rendez relatives les chemins, puis manipulez leurs composants. Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Path : représenter des emplacements de fichiers » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Path : représenter des emplacements de fichiers
  2. Utilitaire Files : lire, écrire, copier, déplacer
  3. Parcourir les arborescences de répertoires avec Files.walk
  4. WatchService : surveiller les changements de fichiers
← Retour à Java Academy