যদিও empty Stringকাজটি ব্যবহার করে বর্তমান ডিরেক্টরি পাওয়ার মূল সমাধান । তবে user.dirবর্তমান ডিরেক্টরি এবং user.homeহোম ডিরেক্টরিতে সম্পত্তি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে ।
Path currentPath = Paths.get(System.getProperty("user.dir"));
Path filePath = Paths.get(currentPath.toString(), "data", "foo.txt");
System.out.println(filePath.toString());
আউটপুট:
/Users/user/coding/data/foo.txt
জাভা পাথ ক্লাস ডকুমেন্টেশন থেকে:
কোনও পাথকে খালি পথ হিসাবে বিবেচনা করা হয় যদি এটিতে কেবলমাত্র একটি নাম উপাদান থাকে empty। empty path is equivalent to accessing the default directoryফাইল সিস্টেমের একটি ব্যবহার করে একটি ফাইল অ্যাক্সেস করা ।
কেন Paths.get("").toAbsolutePath()কাজ করে
যখন একটি খালি স্ট্রিংটি পাস করা হয় Paths.get(""), প্রত্যাবর্তিত Pathঅবজেক্টে ফাঁকা পথ থাকে। তবে আমরা যখন কল করি তখন Path.toAbsolutePath()এটি পথের দৈর্ঘ্য শূন্যের চেয়ে বেশি কিনা তা পরীক্ষা করে, অন্যথায় এটি user.dirসিস্টেমের সম্পত্তি ব্যবহার করে এবং বর্তমান পথটি ফেরত দেয়।
এখানে ইউনিক্স ফাইল সিস্টেম বাস্তবায়নের কোড হল: UnixPath.toAbsolutePath ()
মূলত আপনি Pathবর্তমান ডিরেক্টরি পাথটি সমাধান করার পরে আপনাকে পুনরায় ইনস্ট্যান্স তৈরি করতে হবে।
এছাড়াও আমি File.separatorCharপ্ল্যাটফর্মের স্বাধীন কোডের জন্য ব্যবহার করার পরামর্শ দেব ।
Path currentRelativePath = Paths.get("");
Path currentDir = currentRelativePath.toAbsolutePath();
String filename = "data" + File.separatorChar + "foo.txt";
Path filepath = currentDir.resolve(filename);
System.out.println(filepath);
আউটপুট:
/Users/user/coding/data/foo.txt
filepath.toString()