Node.js path-Modul

Java FileNode.js integrierte Module


von Node.jspathDas Modul ist ein eingebautes Kernmodul, das speziell für die Verarbeitung von Datei- und Verzeichnispfaden entwickelt wurde.

path bietet eine Reihe praktischer Methoden, mit denen Sie Dateipfade in verschiedenen Betriebssystemumgebungen sicher und effizient bearbeiten können.

Warum benötigen Sie das path-Modul?

Verschiedene Betriebssysteme verwenden unterschiedliche Pfadtrennzeichen:

  • Windows verwendet Backslashes\
  • Unix/Linux/macOS verwenden Schrägstriche/

pathDas Modul behandelt diese Unterschiede automatisch, sodass Ihr Code auf verschiedenen Plattformen ordnungsgemäß funktioniert.


Grundlegende Verwendung des path-Moduls

Importieren des path-Moduls

const path = require('path');

Häufig verwendete Methoden

1. path.join([...paths]) - Pfade verbinden

Beispiel

const fullPath = path.join('/user', 'documents', 'file.txt');
console.log(fullPath);
// Unter Unix wird ausgegeben: /user/documents/file.txt
// Unter Windows wird ausgegeben: \user\documents\file.txt

2. path.resolve([...paths]) - Einen absoluten Pfad auflösen

Beispiel

const absolutePath = path.resolve('src', 'app.js');
console.log(absolutePath);
// Gibt den absoluten Pfad im aktuellen Arbeitsverzeichnis aus, z. B.: /home/user/project/src/app.js

3. path.basename(path[, ext]) - Dateinamen ermitteln

Beispiel

console.log(path.basename('/user/docs/file.txt')); // file.txt
console.log(path.basename('/user/docs/file.txt', '.txt')); // file

4. path.dirname(path) - Verzeichnisnamen ermitteln

Beispiel

console.log(path.dirname('/user/docs/file.txt')); // /user/docs

5. path.extname(path) - Dateiendung ermitteln

Beispiel

console.log(path.extname('index.html')); // .html
console.log(path.extname('file')); // Leerer String

Plattformübergreifende Pfadverarbeitung

Pfadtrennzeichen

  • path.sep- Plattformspezifisches Pfadtrennzeichen

    console.log(path.sep); // Windows 输出 '\', Unix 输出 '/'
  • path.delimiter- Plattformspezifisches Pfadtrennzeichen (verwendet in der Umgebungsvariable PATH)

    console.log(path.delimiter); // Windows 输出 ';', Unix 输出 ':'

Pfadnormalisierung

Verwendungpath.normalize(path)kann Pfade normalisieren und dabei Redundanzen.、..und Trennzeichen:

Beispiel

console.log(path.normalize('/user//docs/../file.txt')); // /user/file.txt

Pfadanalyse und Formatkonvertierung

path.parse(path) - Zerlegt einen Pfad in ein Objekt

Beispiel

const pathObj = path.parse('/user/docs/file.txt');
console.log(pathObj);
/*
{
  root: '/',
  dir: '/user/docs',
  base: 'file.txt',
  ext: '.txt',
  name: 'file'
}
*/

path.format(pathObject) - Erstellt einen Pfad aus einem Objekt

Beispiel

const pathStr = path.format({
  dir: '/user/docs',
  name: 'file',
  ext: '.txt'
});
console.log(pathStr); // /user/docs/file.txt

Praktische Anwendungsbeispiele

Beispiel 1: Plattformübergreifende Dateipfade erstellen

Beispiel

const configPath = path.join(__dirname, 'config', 'settings.json');
console.log(configPath);

Beispiel 2: Umgang mit vom Benutzer hochgeladenen Dateien

Beispiel

function saveUploadedFile(uploadDir, originalName) {
  const ext = path.extname(originalName);
  const baseName = path.basename(originalName, ext);
  const timestamp = Date.now();
  const newFileName = `${baseName}_${timestamp}${ext}`;
 
  return path.join(uploadDir, newFileName);
}

Beispiel 3: Überprüfen von Dateiendungen

Beispiel

function isImageFile(filename) {
  const ext = path.extname(filename).toLowerCase();
  return ['.jpg', '.jpeg', '.png', '.gif'].includes(ext);
}

Methoden und Eigenschaften

Die Methoden und Eigenschaften des path-Moduls sind wie folgt:

MethodeBeschreibungBeispiel
path.basename(path[, ext])Gibt den letzten Teil des Pfads zurück (Dateiname). Der optionale Parameterextwird verwendet, um die Dateiendung zu entfernen.path.basename('/foo/bar/baz.txt'); // 输出: 'baz.txt'
path.dirname(path)Gibt den Verzeichnisteil des Pfads zurück.path.dirname('/foo/bar/baz.txt'); // 输出: '/foo/bar'
path.extname(path)Gibt die Dateiendung des Pfads zurück.path.extname('/foo/bar/baz.txt'); // 输出: '.txt'
path.join([...paths])Verbindet mehrere Pfade zu einem Pfad und behandelt dabei automatisch Pfadtrennzeichen.path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // 输出: '/foo/bar/baz/asdf'
path.resolve([...paths])Löst eine Sequenz von Pfaden in einen absoluten Pfad auf und verarbeitet dabei jedes Pfadsegment von rechts nach links, bis ein absoluter Pfad konstruiert ist.path.resolve('/foo/bar', './baz'); // 输出: '/foo/bar/baz'
path.normalize(path)Normalisiert den Pfad, entfernt redundante.und.., und ersetzt Pfadtrennzeichen gemäß dem aktuellen Betriebssystem.path.normalize('/foo/bar//baz/asdf/quux/..'); // 输出: '/foo/bar/baz/asdf'
path.isAbsolute(path)Prüft, ob der Pfad ein absoluter Pfad ist.path.isAbsolute('/foo/bar'); // 输出: true
path.relative(from, to)Gibt zurück vonfromden Pfad zutoden relativen Pfad des Pfades.path.relative('/foo/bar/baz', '/foo/bar/qux'); // 输出: '../qux'
path.parse(path)Eigenschaften des ausgewählten Elements.root、dir、base、extundnameFormatiert das Pfadobjekt in eine Pfadzeichenkette, diepath.parse('/home/user/dir/file.txt');das Gegenteil ist.{ root: '/', dir: '/home/user/dir', base: 'file.txt', ...}
path.format(pathObject)Liefert das Pfadtrennzeichen des aktuellen Betriebssystems (POSIX istpath.parse, Windows istpath.format({ root: '/', dir: '/home/user/dir', base: 'file.txt' }); // 输出: '/home/user/dir/file.txt'
path.sepLiefert den Pfadbegrenzer (das Trennzeichen zwischen Pfaden in Umgebungsvariablen), POSIX ist'/', Windows ist'\')。console.log(path.sep); // 输出: '\' (Windows) oder '/' (POSIX)
path.delimiterBeispiel:Beispiel;。console.log(path.delimiter); // 输出: ';' (Windows) oder ':' (POSIX)

Beispiel

Erstellen Sie eine main.js-Datei, der Code ist wie folgt:

Beispiel

const path = require('path');

// Dateinamen abrufen
console.log('Dateiname:', path.basename('/foo/bar/baz.txt')); // Ausgabe: 'baz.txt'

// Den Verzeichnisnamen abrufen
console.log('Verzeichnisname:', path.dirname('/foo/bar/baz.txt')); // Ausgabe: '/foo/bar'

// Erweiterung abrufen
console.log('Erweiterung:', path.extname('/foo/bar/baz.txt')); // Ausgabe: '.txt'

// Pfade verbinden
console.log('Verbundener Pfad:', path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')); // Ausgabe: '/foo/bar/baz/asdf'

// Absoluten Pfad auflösen
console.log('Absoluter Pfad:', path.resolve('/foo/bar', './baz')); // Ausgabe: '/foo/bar/baz'

// Pfad normalisieren
console.log('Normalisierter Pfad:', path.normalize('/foo/bar//baz/asdf/quux/..')); // Ausgabe: '/foo/bar/baz/asdf'

// Ermitteln, ob es ein absoluter Pfad ist
console.log('Ist absoluter Pfad:', path.isAbsolute('/foo/bar')); // Ausgabe: true

// Relativer Pfad
console.log('Relativer Pfad:', path.relative('/foo/bar/baz', '/foo/bar/qux')); // Ausgabe: '../qux'

// Pfad in ein Objekt parsen
const parsedPath = path.parse('/home/user/dir/file.txt');
console.log('Geparstes Pfadobjekt:', parsedPath);
// Ausgabe: { root: '/', dir: '/home/user/dir', base: 'file.txt', ext: '.txt', name: 'file' }

// Objekt als Pfad formatieren
const formattedPath = path.format(parsedPath);
console.log('Formatted path:', formattedPath); // Outputs: '/home/user/dir/file.txt'

Java FileNode.js integrierte Module

Weitere Erweiterungen