Skip to content

Percorsi dei File in Node.js

Percorsi dei File di Sistema

Ogni file nel sistema ha un percorso. Su Linux e macOS, un percorso potrebbe apparire così: /users/joe/file.txt

mentre i computer Windows hanno una struttura diversa, come ad esempio: C:\users\joe\file.txt

È necessario prestare attenzione quando si utilizzano i percorsi nelle proprie applicazioni, poiché questa differenza deve essere presa in considerazione.

Utilizzo del Modulo path

Si include questo modulo nei propri file usando:

javascript
const path = require('node:path')

e si possono iniziare a utilizzare i suoi metodi.

Ottenere Informazioni da un Percorso

Dato un percorso, è possibile estrarre informazioni da esso utilizzando questi metodi:

  • dirname: ottiene la cartella padre di un file
  • basename: ottiene la parte del nome del file
  • extname: ottiene l'estensione del file

Esempio

javascript
const path = require('node:path')
const notes = '/users/joe/notes.txt'

path.dirname(notes) // /users/joe
path.extname(notes) // .txt
javascript
import path from 'node:path'
const notes = '/users/joe/notes.txt'

path.dirname(notes) // /users/joe
path.extname(notes) // .txt

È possibile ottenere il nome del file senza l'estensione specificando un secondo argomento a basename:

javascript
path.basename(notes, path.extname(notes)) // notes

Lavorare con i Percorsi

È possibile unire due o più parti di un percorso usando path.join():

javascript
path.join('/users', 'joe', 'file.txt') // /users/joe/file.txt

È possibile ottenere il calcolo del percorso assoluto di un percorso relativo usando path.resolve():

javascript
path.resolve('joe.txt') // /Users/joe/joe.txt se eseguito dalla mia home folder
path.resolve('tmp', 'joe.txt') // /Users/joe/tmp/joe.txt se eseguito dalla mia home folder

In questo caso, Node.js aggiungerà semplicemente /joe.txt alla directory di lavoro corrente. Se si specifica un secondo parametro come cartella, resolve utilizzerà il primo come base per il secondo.

Se il primo parametro inizia con una barra, significa che è un percorso assoluto:

javascript
path.resolve('/etc', 'joe.txt') // /etc/joe.txt

path.normalize() è un'altra funzione utile che tenterà di calcolare il percorso effettivo quando contiene specificatori relativi come . o .., o barre doppie:

javascript
path.normalize('/users/joe/../test.txt') // /users/test.txt

resolvenormalize verificheranno se il percorso esiste. Calcolano semplicemente un percorso in base alle informazioni ricevute.