Path.resolve în Java

Adaugă o cale la sfârșitul altei căi: folder.resolve("note.txt") dă folder/note.txt.

Sintaxă
Path resolve(String alta)
Path resolve(Path alta)
Path resolveSibling(String alta)

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 resolve un nume care începe cu /: rezultatul nu mai este în folderul tău, ci în rădăcina discului.
  • Uiți că resolve returnează 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ă.