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:
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 abbasename
: Ruft den Dateinamen abextname
: Ruft die Dateierweiterung ab
Beispiel
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
Sie können den Dateinamen ohne die Erweiterung abrufen, indem Sie ein zweites Argument für basename
angeben:
path.basename(notes, path.extname(notes)) // notes
Arbeiten mit Pfaden
Sie können zwei oder mehr Teile eines Pfads mit path.join()
verbinden:
path.join('/users', 'joe', 'file.txt') // /users/joe/file.txt
Sie können die absolute Pfadberechnung eines relativen Pfads mithilfe von path.resolve()
erhalten:
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:
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:
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.