Ce face path.parse / path.format / path.sep
path.parse întoarce un obiect cu toate părțile unei căi: root (rădăcina, / sau C:\), dir (directorul), base (numele complet), name (numele fără extensie) și ext (extensia).
path.format face operația inversă. Dacă dai base, acesta are prioritate față de name + ext; dacă dai dir, root este ignorat. Așa poți schimba ușor extensia sau numele unui fișier.
path.sep este separatorul de directoare (/ pe Linux și macOS, \ pe Windows), iar path.delimiter este separatorul din variabila PATH (: pe Linux și macOS, ; pe Windows). path.posix și path.win32 oferă aceleași funcții pentru un sistem anume.
Parametri
| Parametru | Descriere |
|---|---|
cale |
Pentru parse: calea de desfăcut. |
obiect |
Pentru format: un obiect cu root, dir, base, name, ext (toate opționale). |
Ce returnează
parse: un obiect cu cinci proprietăți. format: calea, ca șir.
Exemple
Exemplul 1: Bucățile unei căi
import path from "node:path";
console.log(path.posix.parse("/home/ana/poze/iasi-2026.jpg"));
console.log(path.win32.parse("C:\\Users\\Ana\\cv.docx"));
Rezultat
{
root: '/',
dir: '/home/ana/poze',
base: 'iasi-2026.jpg',
ext: '.jpg',
name: 'iasi-2026'
}
{
root: 'C:\\',
dir: 'C:\\Users\\Ana',
base: 'cv.docx',
ext: '.docx',
name: 'cv'
}
Exemplul 2: Schimbarea extensiei cu parse + format
import path from "node:path";
function schimbaExtensia(cale, extNoua) {
const { dir, name } = path.parse(cale);
return path.format({ dir, name, ext: extNoua });
}
console.log(schimbaExtensia("rapoarte/vanzari.csv", ".xlsx"));
console.log(schimbaExtensia("poze/iasi.png", "webp"));
console.log(path.format({ root: "/", base: "index.html" }));
Rezultat
rapoarte/vanzari.xlsx
poze/iasi.webp
/index.html
Exemplul 3: Separatorii sistemului
import path from "node:path";
console.log("Linux/macOS:", path.posix.sep, path.posix.delimiter);
console.log("Windows:", path.win32.sep, path.win32.delimiter);
const PATH = "/usr/local/bin:/usr/bin:/home/ana/.local/bin";
console.log(PATH.split(path.posix.delimiter));
Rezultat
Linux/macOS: / :
Windows: \ ;
[ '/usr/local/bin', '/usr/bin', '/home/ana/.local/bin' ]
Greșeli frecvente
- Dai lui
formatșibase, șiname+ext:basecâștigă, iar schimbarea extensiei nu are efect. Când schimbi extensia, nu trimitebase(nu folosi direct{ ...path.parse(cale), ext }). - Scrii
"/"sau":"direct în cod când împarți căi ori variabilaPATH; foloseștepath.sepșipath.delimiter.
Comenzi înrudite
path.basename / dirname / extname: Extrage dintr-o cale numele fișierului (basename), directorul (dirname) sau extensia (extname).path.join: Lipește mai multe bucăți într-o singură cale, cu separatorul corect pentru sistemul de operare, și curăță ./ și ../.path.resolve / path.relative: Transformă o cale în cale absolută (resolve), calculează drumul dintre două căi (relative) și verifică sau curăță căi.process.env: Obiectul cu variabilele de mediu ale procesului: configurări ca PORT, NODE_ENV sau chei de API, mereu ca șiruri.