Skip to content

Node.js Dateipfade

System-Dateipfade

Jede Datei im System hat einen Pfad. Unter Linux und macOS kann ein Pfad wie folgt aussehen: /users/joe/file.txt

während Windows-Computer eine andere Struktur haben, wie z. B.: C:\users\joe\file.txt

Sie müssen bei der Verwendung von Pfaden in Ihren Anwendungen vorsichtig sein, da dieser Unterschied berücksichtigt werden muss.

Verwendung des path-Moduls

Sie binden dieses Modul in Ihre Dateien ein, indem Sie Folgendes verwenden:

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

und Sie können beginnen, seine Methoden zu verwenden.

Informationen aus einem Pfad extrahieren

Angesichts eines Pfads können Sie mit den folgenden Methoden Informationen daraus extrahieren:

  • dirname: Ruft den übergeordneten Ordner einer Datei ab
  • basename: Ruft den Dateinamen ab
  • extname: Ruft die Dateierweiterung ab

Beispiel

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

Sie können den Dateinamen ohne die Erweiterung abrufen, indem Sie ein zweites Argument für basename angeben:

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

Arbeiten mit Pfaden

Sie können zwei oder mehr Teile eines Pfads mit path.join() verbinden:

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

Sie können die absolute Pfadberechnung eines relativen Pfads mithilfe von path.resolve() erhalten:

javascript
path.resolve('joe.txt') // /Users/joe/joe.txt, wenn er aus meinem Home-Ordner ausgeführt wird
path.resolve('tmp', 'joe.txt') // /Users/joe/tmp/joe.txt, wenn er aus meinem Home-Ordner ausgeführt wird

In diesem Fall hängt Node.js einfach /joe.txt an das aktuelle Arbeitsverzeichnis an. Wenn Sie einen zweiten Parameter als Ordner angeben, verwendet resolve den ersten als Basis für den zweiten.

Wenn der erste Parameter mit einem Schrägstrich beginnt, bedeutet dies, dass es sich um einen absoluten Pfad handelt:

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

path.normalize() ist eine weitere nützliche Funktion, die versucht, den tatsächlichen Pfad zu berechnen, wenn er relative Spezifizierer wie . oder .. oder doppelte Schrägstriche enthält:

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

Weder resolve noch normalize prüfen, ob der Pfad existiert. Sie berechnen lediglich einen Pfad anhand der ihnen vorliegenden Informationen.