Percorsi File in Node.js
Percorsi File di Sistema
Ogni file nel sistema ha un percorso. Su Linux e macOS, un percorso potrebbe assomigliare a: /users/joe/file.txt
mentre i computer Windows hanno una struttura diversa come: C:\users\joe\file.txt
Devi prestare attenzione quando usi i percorsi nelle tue applicazioni, poiché questa differenza deve essere presa in considerazione.
Usare il Modulo path
Includi questo modulo nei tuoi file usando:
const path = require('node:path')
e puoi iniziare a usare i suoi metodi.
Ottenere Informazioni da un Percorso
Dato un percorso, puoi estrarre informazioni da esso usando questi metodi:
dirname
: ottiene la cartella principale di un filebasename
: ottiene la parte del nome fileextname
: ottiene l'estensione del file
Esempio
const path = require('node:path')
const notes = '/users/joe/notes.txt'
path.dirname(notes) // /users/joe
path.extname(notes) // .txt
import path from 'node:path'
const notes = '/users/joe/notes.txt'
path.dirname(notes) // /users/joe
path.extname(notes) // .txt
Puoi ottenere il nome del file senza l'estensione specificando un secondo argomento a basename
:
path.basename(notes, path.extname(notes)) // notes
Lavorare con i Percorsi
Puoi unire due o più parti di un percorso usando path.join()
:
path.join('/users', 'joe', 'file.txt') // /users/joe/file.txt
Puoi ottenere il calcolo del percorso assoluto di un percorso relativo usando path.resolve()
:
path.resolve('joe.txt') // /Users/joe/joe.txt se eseguito dalla mia cartella home
path.resolve('tmp', 'joe.txt') // /Users/joe/tmp/joe.txt se eseguito dalla mia cartella home
In questo caso, Node.js aggiungerà semplicemente /joe.txt
alla directory di lavoro corrente. Se specifichi un secondo parametro come cartella, resolve
userà il primo come base per il secondo.
Se il primo parametro inizia con una barra, significa che è un percorso assoluto:
path.resolve('/etc', 'joe.txt') // /etc/joe.txt
path.normalize()
è un'altra funzione utile che cercherà di calcolare il percorso effettivo quando contiene specificatori relativi come .
o ..
, o doppie barre:
path.normalize('/users/joe/../test.txt') // /users/test.txt
Né resolve
né normalize
verificheranno se il percorso esiste. Calcolano semplicemente un percorso in base alle informazioni che hanno ricevuto.