Bnlang ফাইল পাথ
ক্রস-প্ল্যাটফর্ম ফাইল পাথ মানে / বা \ হার্ডকোড না করা, এবং কোনো নির্দিষ্ট ওয়ার্কিং ডিরেক্টরির উপর নির্ভর না করা।
বিল্ট-ইন path মডিউল আপনাকে হেল্পার দেয় যা Windows, Linux ও macOS-এ একই ভাবে কাজ করে, এবং ইনপুটে দু'টা সেপারেটরই গ্রহণ করে।
Common Operations
import "path" as path;
// Build a path from segments.
print(path.join(["data", "users", "alice.json"]));
// → "data/users/alice.json"
// Take a path apart.
print(path.dirname("/var/log/app.log")); // → "/var/log"
print(path.basename("/var/log/app.log")); // → "app.log"
print(path.stem("/var/log/app.log")); // → "app"
print(path.extname("/var/log/app.log")); // → ".log"
// Normalize a messy path.
print(path.normalize("/foo/./bar/../baz")); // → "/foo/baz"
// Is this an absolute path?
print(path.is_absolute("/etc/hosts")); // → true
print(path.is_absolute("C:/Users/zo")); // → true
print(path.is_absolute("./local")); // → false
Platform-Native Separator
হেল্পারগুলো সব প্ল্যাটফর্মে / ইমিট করে — যা Windows ফাইলসিস্টেম API-তেও ঠিক কাজ করে। আপনি যদি বিশেষভাবে প্ল্যাটফর্ম-নেটিভ সেপারেটর চান (যেমন শেল স্ক্রিপ্টের জন্য), path.sep পড়ুন।
import "path" as path;
print("native separator:", path.sep); // "/" on POSIX, "\\" on Windows
Best Practices
- স্ট্রিং কনক্যাট না করে
path.joinব্যবহার করুন — এটা ট্রেইলিং স্ল্যাশ ও খালি সেগমেন্ট সামলায়। - ব্যবহারকারী-প্রদত্ত পার্ট কম্বাইন করার পরে
..ও.সেগমেন্ট কোলাপ্স করতেpath.normalizeব্যবহার করুন। - স্ট্রিং লিটারালে সেপারেটর হার্ডকোড করবেন না;
pathমডিউলকে সঠিক ফর্ম বেছে নিতে দিন।