Como escrevo isso para voltar os níveis pai 2 para encontrar um arquivo?
fs.readFile(__dirname + 'foo.bar');
javascript
node.js
filesystems
chique
fonte
fonte
fs.readFile(__dirname + '/../../foo.bar');
e funcionou.__dirname
era algo'/foo/bar'
mais do que'/foo/bar/'
.__dirname
pode parecer/path/to/your/dir
, se você diz__dirname + ".."
que é/path/to/your/dir..
, que é um diretório inexistente, e não/path/to/your
. A barra é importante.Use path.join http://nodejs.org/docs/v0.4.10/api/path.html#path.join
path.join()
ele lida com barras à esquerda / à direita e faz a coisa certa e você não precisa se lembrar de quando existem barras à direita e quando não existem.fonte
path.join
é a maneira correta, a resposta aceita não deve ser seguido, ele ainda provocaeslint
emairbnb-base preset
, a regra não-path-concat em particular__dirname
erahost/src/folder
e eu precisavahost/folder
e isso funcionou para mim, não a resposta do OP.path.join(__dirname, '..', '..', 'foo.bar')
Eu sei que é um pouco exigente, mas todas as respostas até agora não estão certas.
O objetivo de path.join () é eliminar a necessidade de o chamador saber qual separador de diretório usar (tornando a plataforma de código independente).
Tecnicamente, a resposta correta seria algo como:
Eu teria acrescentado isso como um comentário à resposta de Alex Wayne, mas ainda não o suficiente!
EDIT: conforme observação de user1767586
fonte
A maneira mais fácil seria usar
path.resolve
:fonte
../
- se ao caminhoParece que você precisará do
path
módulo. (path.normalize
em particular)fonte
Se outro módulo chamar o seu e você ainda quiser saber o local do arquivo principal em execução, use uma modificação do código de @ Jason:
Dessa forma, você obterá a localização do script realmente sendo executado.
fonte
Se você não souber onde está o pai ou mãe, isso lhe dará o caminho;
fonte
Você pode usar
fonte
Estou executando o aplicativo elétron e posso obter a pasta pai por path.resolve ()
nível pai 1:
path.resolve(__dirname, '..') + '/'
pai 2 níveis:
path.resolve(__dirname, '..', '..') + '/'
fonte
isso também funcionará:
fonte