নোড জেএস একটি ফাইল থেকে ফোল্ডার পাথ পান


90

কোনও নির্দিষ্ট ফাইল ধারণ করে এমন কোনও ফোল্ডারে যাওয়ার পথ রয়েছে কি?

fs.realpathSync('config.json', []);

কিছু ফিরে

G:\node-demos\7-node-module\demo\config.json

আমার দরকার

G:\node-demos\7-node-module\demo\ 
or
G:\node-demos\7-node-module\demo\

এর জন্য কোনও এপিআই আছে বা আমার স্ট্রিংটি প্রক্রিয়া করা দরকার?

উত্তর:


164

path.dirname ব্যবহার করুন

// onlyPath should be G:\node-demos\7-handlebars-watch\demo
var onlyPath = require('path').dirname('G:\\node-demos\\7-node-module\\demo\\config.json');

4
আপনার ব্যাকস্ল্যাশগুলি দ্বিগুণ করুন, বা আপনি এলোমেলো অক্ষরগুলি ছেড়ে পালিয়ে যাবেন।
Ван

4
আপনি আসল প্রশ্নে মত একটি আপেক্ষিক পাথ দিয়ে শুরু করছেন, তাহলে আপনি do- হবেlet onlyPath = path.dirname(fs.realpathSync('config.json'));
কিপ

আমি সর্বদা @ কিপ ব্যবহারের পদ্ধতিটি ব্যবহার করতে চাই realpathSyncযা নিরঙ্কুশ এবং আপেক্ষিক পাথকে
coversেকে রাখে

5

require("path").dirname(……) বিরতি যখন আপনার পাথ স্পষ্টভাবে এর ডিরেক্টরি নির্দিষ্ট করে না।

require("path").dirname("./..")
// "."

require("path").join(……, "../")পরিবর্তে আপনি ব্যবহার বিবেচনা করতে পারেন । এটি পাশাপাশি চলমান বিভাজকও সংরক্ষণ করে।

require("path").join("whatever/absolute/or/relative", "../")
// "whatever/absolute/or/" (POSIX)
// "whatever\\absolute\\or\\" (Windows)
require("path").join(".", "../")
// "../" (POSIX)
// "..\\" (Windows)
require("path").join("..", "../")
// "../../" (POSIX)
// "..\\..\\" (Windows)
require("path").win32.join("C:\\", "../")
// "C:\\"

5

কেবল pathমডিউল ইনস্টল করুন এবং এটি ব্যবহার করুন,

var path = require('path');
path.dirname('G:\\node-demos\\7-node-module\\demo\\config.json')

// Returns: 'G:\node-demos\7-node-module\demo'

এটি 5 বছর আগে পোস্ট করা গৃহীত উত্তরের সাথে অভিন্ন বলে মনে হচ্ছে
কাইলমিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.