Ce face Path.resolve
folder.resolve("note.txt") construiește calea unui element din folder. Este felul obișnuit de a „intra” într-un folder: Path.of("poze").resolve("2026").resolve("mare.jpg") dă poze/2026/mare.jpg.
Dacă argumentul este o cale absolută, rezultatul este chiar argumentul (prima cale este ignorată). resolveSibling("alt.txt") înlocuiește ultimul nume: din poze/a.jpg obții poze/alt.txt, util pentru redenumiri.
Parametri
| Parametru | Descriere |
|---|---|
alta |
Calea sau numele adăugat. |
Ce returnează
Un Path nou; calea originală nu se schimbă.
Exemple
Exemplul 1: Construirea căilor dintr-un folder de bază
import java.nio.file.Path;
public class Main {
public static void main(String[] args) {
Path baza = Path.of("magazin");
Path produse = baza.resolve("produse");
System.out.println(produse.resolve("mere.json"));
System.out.println(baza.resolve("comenzi/2026/oct.csv"));
System.out.println(produse.resolveSibling("clienti"));
System.out.println(baza.resolve("/tmp/log.txt"));
System.out.println("Baza a rămas: " + baza);
}
}
Rezultat
magazin/produse/mere.json
magazin/comenzi/2026/oct.csv
magazin/clienti
/tmp/log.txt
Baza a rămas: magazin
Exemplul 2: Fișiere scrise într-un folder cu resolve
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) throws IOException {
Path rapoarte = Files.createDirectories(Path.of("rapoarte"));
for (String luna : new String[]{"ianuarie", "februarie"}) {
Path fisier = rapoarte.resolve(luna + ".txt");
Files.writeString(fisier, "Raport pentru " + luna);
System.out.println(fisier + ": " + Files.readString(fisier));
}
}
}
Rezultat
rapoarte/ianuarie.txt: Raport pentru ianuarie
rapoarte/februarie.txt: Raport pentru februarie
Greșeli frecvente
- Dai lui
resolveun nume care începe cu/: rezultatul nu mai este în folderul tău, ci în rădăcina discului. - Uiți că
resolvereturnează o cale nouă:baza.resolve("x");fără atribuire nu schimbăbaza.
Comenzi înrudite
Path.of: Creează un Path din unul sau mai multe nume; le unește cu separatorul corect al sistemului.Path.relativize: Calculează drumul relativ de la o cale la alta: Path.of(„a”).relativize(Path.of(„a/b/c”)) dă b/c.Path.getFileName: getFileName dă ultimul nume din cale (fișierul), iar getParent calea fără ultimul nume (folderul care îl conține).Files.createDirectory: createDirectory creează un singur folder; createDirectories creează și folderele părinte lipsă, fără eroare dacă există.