जवाबों:
इसे इस्तेमाल करे:
fs.readFile(__dirname + '/../../foo.bar');
रिश्तेदार पथ की शुरुआत में आगे की स्लैश पर ध्यान दें।
__dirname
वह '/foo/bar'
बदले की तरह कुछ कर रहा था '/foo/bar/'
।
__dirname
ऐसा लग सकता है /path/to/your/dir
, यदि आप कहते हैं कि __dirname + ".."
यह ऐसा है /path/to/your/dir..
, जो इसके बजाय एक अविशिष्ट निर्देशिका है /path/to/your
। स्लैश महत्वपूर्ण है।
उपयोग 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()
आप के लिए अग्रणी / अनुगामी स्लैश को संभालेगा और बस सही काम करेगा और आपको यह याद रखने की कोशिश करने की आवश्यकता नहीं है कि अनुगामी स्लैश मौजूद हैं और कब नहीं।
__dirname
थी host/src/folder
और मुझे इसकी ज़रूरत थी host/folder
और यह मेरे लिए काम करता था, न कि ओपी का जवाब।
path.join(__dirname, '..', '..', 'foo.bar')
मुझे पता है कि यह थोड़ा अचार है, लेकिन अब तक के सभी उत्तर बिल्कुल सही नहीं हैं।
Path.join () का मतलब यह है कि कॉल करने वाले को यह जानने के लिए कि कौन सी डायरेक्ट्री विभाजक का उपयोग करना है (कोड प्लेटफ़ॉर्म अज्ञेयवादी बनाना) की आवश्यकता को समाप्त करना।
तकनीकी रूप से सही उत्तर कुछ इस तरह होगा:
var path = require("path");
fs.readFile(path.join(__dirname, '..', '..', 'foo.bar'));
मैंने इसे एलेक्स वेन के जवाब के लिए एक टिप्पणी के रूप में जोड़ा होगा लेकिन अभी तक पर्याप्त प्रतिनिधि नहीं है!
EDIT: उपयोगकर्ता 1767586 के अवलोकन के अनुसार
उपयोग करने का सबसे आसान तरीका होगा path.resolve
:
path.resolve(__dirname, '..', '..');
../
पथ में शामिल होने से फ़ोल्डर को हल करने की आवश्यकता नहीं है
ऐसा लगता है कि आपको path
मॉड्यूल की आवश्यकता होगी । ( path.normalize
विशेष रूप से)
var path = require("path"),
fs = require("fs");
fs.readFile(path.normalize(__dirname + "/../../foo.bar"));
यदि कोई अन्य मॉड्यूल आपका कॉल करता है और आप अभी भी मुख्य फ़ाइल के स्थान को जानना चाहते हैं तो आप @ जेसन के कोड के संशोधन का उपयोग कर सकते हैं:
var path = require('path'),
__parentDir = path.dirname(process.mainModule.filename);
fs.readFile(__parentDir + '/foo.bar');
इस तरह आपको वास्तव में चलाए जा रहे स्क्रिप्ट का स्थान मिल जाएगा।
यदि आप सकारात्मक नहीं हैं कि माता-पिता कहां हैं, तो यह आपको रास्ता देगा;
var path = require('path'),
__parentDir = path.dirname(module.parent.filename);
fs.readFile(__parentDir + '/foo.bar');
मैं इलेक्ट्रॉन ऐप चला रहा हूं और मैं पथ फ़ोल्डर को प्राप्त कर सकता हूं।
माता-पिता 1 स्तर:path.resolve(__dirname, '..') + '/'
माता-पिता 2 स्तर:path.resolve(__dirname, '..', '..') + '/'
यह भी काम करेगा:
fs.readFile(`${__dirname}/../../foo.bar`);
fs.readFile(__dirname + '/../../foo.bar');
और यह काम किया।