উত্তর:
এটা চেষ্টা কর:
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()
আপনার জন্য শীর্ষস্থানীয় / পিছনে স্ল্যাশ পরিচালনা করবে এবং সঠিক কাজটি করবে এবং স্ল্যাশগুলি অনুসরণ করার সময় এবং সেগুলি কখনই না তা মনে করার দরকার নেই।
path.join
সঠিক ভাবে, গৃহীত উত্তর অনুসৃত করা উচিত নয়, এটা এমনকি আরম্ভ করে eslint
উপর airbnb-base preset
, নিয়ম নো পথ-CONCAT বিশেষ করে
__dirname
ছিল host/src/folder
এবং আমার দরকার ছিল এবং এটি আমার পক্ষে host/folder
কাজ করেছে, ওপি উত্তর নয়।
path.join(__dirname, '..', '..', 'foo.bar')
আমি জানি এটি কিছুটা পিক, তবে এখন পর্যন্ত সমস্ত উত্তর একেবারেই ঠিক নয়।
পাথ.জেইন () এর বিন্দুটি হ'ল কলিংকারীর কোন ডিরেক্টরি বিভাজকটি ব্যবহার করতে হবে তা জানার জন্য প্রয়োজনীয়তা দূর করা (কোড প্ল্যাটফর্ম অজ্ঞেয় তৈরি করা)।
প্রযুক্তিগতভাবে সঠিক উত্তরটি এমন হবে:
var path = require("path");
fs.readFile(path.join(__dirname, '..', '..', 'foo.bar'));
আমি এ্যালেক্স ওয়েনের উত্তরের মন্তব্য হিসাবে এটিকে যুক্ত করতাম তবে এখনও যথেষ্ট প্রতিনিধি ছিল না!
সম্পাদনা: ব্যবহারকারী 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');
আমি ইলেক্ট্রন অ্যাপ্লিকেশন চালাচ্ছি এবং আমি পথের মাধ্যমে প্যারেন্ট ফোল্ডারটি পেতে পারি olve
পিতামাতার 1 স্তর:path.resolve(__dirname, '..') + '/'
পিতামাতার 2 স্তর:path.resolve(__dirname, '..', '..') + '/'
এটিও কাজ করবে:
fs.readFile(`${__dirname}/../../foo.bar`);
fs.readFile(__dirname + '/../../foo.bar');
এবং এটি কাজ করে।