javascript - ändern - fs: Wie finde ich einen übergeordneten Ordner?



javascript title ändern (6)

Der einfachste Weg wäre, path.resolve zu verwenden:

path.resolve(__dirname, '..', '..');

https://src-bin.com

Wie schreibe ich dies, um die Eltern 2 Ebenen wieder zu gehen, um eine Datei zu finden?

fs.readFile(__dirname + 'foo.bar');

Answer #1

Ich weiß, es ist ein bisschen wählerisch, aber alle Antworten sind nicht ganz richtig.

Der Sinn von path.join () besteht darin, dass der Aufrufer nicht mehr wissen muss, welches Verzeichnistrennzeichen verwendet werden soll (wodurch die Code-Plattform unabhängig wird).

Technisch wäre die richtige Antwort etwas wie:

var path = require("path");

fs.readFile(path.join(__dirname, '..', '..', 'foo.bar'));

Ich hätte dies als Kommentar zu Alex Waynes Antwort hinzugefügt, aber noch nicht genug Rep!

EDIT: wie Benutzer 1767586 Beobachtung


Answer #2

Sieht so aus, als würden Sie das Pfadmodul benötigen. ( path.normalize insbesondere)

var path = require("path"),
    fs = require("fs");

fs.readFile(path.normalize(__dirname + "/../../foo.bar"));

Answer #3

Versuche dies:

fs.readFile(__dirname + '/../../foo.bar');

Beachten Sie den Schrägstrich am Anfang des relativen Pfads.


Answer #4

Wenn Sie nicht positiv darüber sind, wo der Elternteil ist, wird Ihnen das den Weg weisen;

var path = require('path'),
    __parentDir = path.dirname(module.parent.filename);

fs.readFile(__parentDir + '/foo.bar');

Answer #5

Wenn ein anderes Modul deins aufruft und Sie immer noch wissen möchten, wo sich die Hauptdatei befindet, können Sie eine Modifikation von @ Jasons Code verwenden:

var path = require('path'),
    __parentDir = path.dirname(process.mainModule.filename);

fs.readFile(__parentDir + '/foo.bar');

Auf diese Weise erhalten Sie den Speicherort des aktuell ausgeführten Skripts.





filesystems