জাভা 7-এ স্ট্রিং থেকে একটি পাথ তৈরি করুন


280

আমি জাভা 7-তে কোনও java.nio.file.Pathঅবজেক্ট থেকে কীভাবে একটি বস্তু তৈরি করতে পারি String?

অর্থাত

String textPath = "c:/dir1/dir2/dir3";
Path path = ?;

?অনুপস্থিত কোডটি কোথায় ব্যবহার করে textPath

উত্তর:


454

আপনি কেবল Pathsক্লাসটি ব্যবহার করতে পারেন :

Path path = Paths.get(textPath);

... ধরে নিচ্ছি আপনি অবশ্যই ডিফল্ট ফাইল সিস্টেমটি ব্যবহার করতে চান।


আপেক্ষিক পথ এবং পূর্ণ পথ নিয়ে কাজ করার কোনও উপায় আছে কি? অর্থাত্ প্রকল্পটি বা এপিএইপি কোনটির সাথে সম্পর্কিত?
shinzou

@ কুহাকু: আমি মনে করি আপনি কী করতে চাইছেন এবং আপনি কী চেষ্টা করেছেন সে সম্পর্কে আপনার একটি নতুন প্রশ্ন জিজ্ঞাসা করা উচিত।
জন স্কিটে

@ জনস্কিট Path.get()প্ল্যাটফর্মটি কি স্বাধীন? যার অর্থ Path.get("lib","p2") হবে lib\p2উইন্ডোজ এবং lib/p2লিনাক্স-এ
Kasun Siyambalapitiya

1
@ কাসুনসিয়াম্বলপিতিয়া: হ্যাঁ, এটি ঠিক হওয়া উচিত should
জন স্কিটি

1
@ জোনস্কিট পাথস.জেট ("/ অপ্ট / পাথ /"); এটি "\ opt \ path।" হিসাবে ফিরে আসে। আপনি দয়া করে সমাধান প্রদান করতে পারেন।
কানাগুলি

18

Javadocs থেকে .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

Path p1 = Paths.get("/tmp/foo"); 

হিসাবে একই

Path p4 = FileSystems.getDefault().getPath("/tmp/foo");

Path p3 = Paths.get(URI.create("file:///Users/joe/FileTest.java"));

Path p5 = Paths.get(System.getProperty("user.home"),"logs", "foo.log"); 

উইন্ডোজে, সি সি ফাইল তৈরি করে : \ জো \ লগস \ foo.log (ইউনিক্সে ব্যবহারকারীকে হোম হিসাবে ধরে: \ জো)
ইউনিক্সে, ফাইল তৈরি করে /u/joe/logs/foo.log (ব্যবহারকারীকে হোম / u / জো হিসাবে ধরে)


6
আমি File.separaratorবর্তমান ওএসের যত্ন নেওয়ার পরিবর্তে ব্যবহার করার পরামর্শ দিচ্ছি । যেমন "/tmp/foo"হয়File.separator+"tmp"+File.separator+"foo"
mat_boy

আমার ধারণা এটি আসল ফাইল তৈরি করে না তবে এটি একটি পাথ অবজেক্ট তৈরি করে। আপনি ফাইল ক্রেটফিল (লগফিলপথ) ব্যবহার করে ডিস্কে আসল ফাইল তৈরি করতে পাথ অবজেক্টটি ব্যবহার করতে পারেন।
মিঃ কিউ

12

সম্ভব হলে আমি Pathপথের উপাদানগুলি থেকে সরাসরি তৈরি করার পরামর্শ দেব :

Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"

এই প্ল্যাটফর্মটি কি স্বতন্ত্র?
কাসুন সিয়ামম্বলাপিতিয়া

7

এমনকি যখন প্রশ্নটি জাভা 7 সম্পর্কিত, তখনও আমি মনে করি এটি জাভা 11 থেকে আরও জানার জন্য মূল্যকে যুক্ত করে যে Pathক্লাসে একটি স্থিতিশীল পদ্ধতি রয়েছে যা সরাসরি এটি করতে দেয়:

একটি স্ট্রিংয়ের সমস্ত পথ সহ:

Path.of("/tmp/foo");

বেশ কয়েকটি স্ট্রিংয়ে পথটি ভেঙে যাওয়ার সাথে:

Path.of("/tmp","foo");


2
অবশেষে তারা এই পদ্ধতিটি সরবরাহ করেছিল!
মাদুরবয়

@ ম্যাট_বয়ে হ্যাঁ তবে এটি আসলে কোনও বড় বিষয় নয়। পদ্ধতি ইতিমধ্যে, জাভা 7 অস্তিত্ব ব্যতীত পূর্বের নাম ছিল Paths.get
ডজিকোডএক্সসেপশন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.