456 Stimmen

Holen Sie sich den Dateinamen aus dem absoluten Pfad in Node.js?

Wie kann ich den Dateinamen aus einem absoluten Pfad in Nodejs erhalten?

z. B. "foo.txt" von "/var/www/foo.txt"

Ich weiß, dass es mit einer Zeichenkettenoperation funktioniert, wie fullpath.replace(/.+\\//, ''), aber ich möchte wissen, ob es einen expliziten Weg gibt, wie file.getName() in Java?

4voto

pryansh Punkte 125

Pfad ist ein NodeJS-Modul, das bedeutet, dass Sie kein Paket installieren müssen, um seine Eigenschaften zu verwenden.

import path from 'path'
const dir_name = path.basename('/Users/Project_naptha/demo_path.js')
console.log(dir_name)

// gibt zurück
demo_path.js

0voto

Visv M Punkte 305

In NodeJS gibt __filename.split(/\|//).pop() nur den Dateinamen aus dem absoluten Dateipfad auf jeder Betriebssystemplattform zurück. Warum müssen wir uns darum kümmern, uns an das Importieren einer API zu erinnern, während dieser Regex-Ansatz es uns auch ermöglicht, unsere Regex-Fähigkeiten wieder aufzufrischen.

0voto

vijayakumarpsg587 Punkte 961

Nodejs wird standardmäßig mit der globalen Variable namens '__fileName' geliefert, die die aktuell ausgeführte Datei enthält. Mein Rat ist, den __fileName von jeder Datei an einen Service zu übergeben, damit die Abrufung des Dateinamens dynamisch erfolgt

Im Folgenden verwende ich den Dateinamen-String und teile ihn dann basierend auf dem path.sep auf. Beachten Sie, dass path.sep Probleme mit posix-Dateitrennzeichen und Windows-Dateitrennzeichen (Probleme mit '/' und '\') vermeidet. Es ist viel sauberer. Das Abrufen des Teilstrings und das Erhalten nur des letzten getrennten Namens und das Subtrahieren davon mit der tatsächlichen Länge um 3 spricht für sich selbst.

Sie können einen Service wie diesen schreiben (Beachten Sie, dass dies in TypeScript ist, aber Sie können es genauso gut in JavaScript schreiben)

export class AppLoggingConstants {

    constructor(){

    }
      // Stellen Sie hier sicher, dass der Dateiname-Parameter tatsächlich '__fileName' ist
    getDefaultMedata(fileName: string, methodName: string) {
        const appName = APP_NAME;
        const actualFileName = fileName.substring(fileName.lastIndexOf(path.sep)+1, fileName.length - 3);
        //const actualFileName = fileName;
     return appName+ ' -- '+actualFileName;
    }

}

export const AppLoggingConstantsInstance = new AppLoggingConstants();

0voto

alekstim Punkte 91

In Node.js können Sie den Dateinamen aus einem absoluten Pfad mithilfe des path-Moduls erhalten. Genauer gesagt können Sie die path.basename() Funktion verwenden, um den Dateinamen aus einem gegebenen Pfad zu extrahieren.

Beispielcode:

const path = require('path');

const absolutePath = '/var/www/foo.txt';
const fileName = path.basename(absolutePath);

console.log(fileName); // Ausgabe: foo.txt

Die path.basename() Funktion extrahiert automatisch den Dateinamen aus dem angegebenen Pfad

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X