javascript w3schools fs: como faço para localizar uma pasta pai?




w3schools try out (6)

Como escrevo isto para voltar aos níveis pai para encontrar um arquivo?

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

https://code.i-harness.com


A maneira mais fácil seria usar path.resolve :

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

Eu sei que é um pouco exigente, mas todas as respostas até agora não estão bem corretas.

O ponto de path.join () é eliminar a necessidade de o chamador saber qual separador de diretório usar (tornando a plataforma de código agnóstica).

Tecnicamente, a resposta correta seria algo como:

var path = require("path");

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

Eu teria acrescentado isso como um comentário à resposta de Alex Wayne, mas ainda não foi suficiente!

EDIT: como por observação user1767586


Se outro módulo chamar o seu e você ainda quiser saber a localização do arquivo principal sendo executado, você pode usar uma modificação do código do @ Jason:

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

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

Dessa forma, você obterá a localização do script que está sendo executado.


Se você não tiver certeza de onde o pai está, isso lhe dará o caminho;

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

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

Use path.join http://nodejs.org/docs/v0.4.10/api/path.html#path.join

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

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

path.join() irá lidar com barras path.join() / finais para você e apenas fazer a coisa certa e você não tem que tentar se lembrar de quando existem barras e quando elas não existem.


Você pode usar

path.join(__dirname, '../..');






filesystems