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 মডিউলকে সঠিক ফর্ম বেছে নিতে দিন।