std.path
API summary (generated from the Beans source by npm run coverage): 5 package functions.
std.path শুধু path স্ট্রিং নিয়ে কাজ করে। এটা filesystem-এ কখনো হাত দেয় না, আর
সব সাপোর্টেড target-এ separator হিসেবে সবসময় / ব্যবহার করে। এটাকে path-এর জন্য
স্ট্রিং নিয়ে হিসাব ভাবা যায়। সোর্স পড়ুন
stdlib/std/path/path.b-তে।
import std.pathpub fn join(first: string, second: string) -> stringpub fn parent(value: string) -> stringpub fn name(value: string) -> stringpub fn extension(value: string) -> stringpub fn stem(value: string) -> stringjoinদুই অংশের মাঝে ঠিক একটা/বসায় আর খালি segment বাদ দেয়।secondযদি একটা absolute path হয় (/দিয়ে শুরু), তাহলে সেটাই জেতে আর যেমন আছে তেমনই ফেরত আসে।parentশেষ segment-এর আগের সবকিছু ফেরত দেয়। শেষের slash গোনায় ধরা হয় না। root-লেভেলের path-এর জন্য এটা/ফেরত দেয়, আর কোনো parent না থাকলে""।nameশেষ segment-টা ফেরত দেয়। শেষের slash গোনায় ধরা হয় না, তাইname("a/b/")হলো"b"।extensionfile extension ফেরত দেয়, সামনের dot সহ, যেমন".txt", আর না থাকলে""।.env-এর মতো একটা dotfile-কে name ধরা হয়, extension না, তাই এর extension খালি।stemশেষ segment-টা ফেরত দেয় তার extension বাদ দিয়ে।stemআরextensionমিলিয়েnameআবার গড়ে তোলে।
import std.ioimport std.path
fn main() { io.println(path.join("a/b", "c.txt")) // a/b/c.txt io.println(path.join("a", "/etc")) // /etc io.println(path.parent("a/b/c.txt")) // a/b io.println(path.name("a/b/c.txt")) // c.txt io.println(path.extension("a/b/c.txt")) // .txt io.println(path.extension(".env")) // (empty) io.println(path.stem("a/b/c.txt")) // c}আরও দেখুন
“আরও দেখুন” সেকশন- std.fs — এই path-গুলো যে ফাইল দেখায়, সেগুলো পড়া আর লেখা।