2013-07-09 13 views
20

अधिक जानकारीjava.nio.Path से पथ स्ट्रिंग कैसे प्राप्त करें?

साथ दुबारा लिखा सवाल मैं कुछ कोड है कि संबंधित पथ का उपयोग कर एक Path वस्तु, इस तरह बनाता है: Paths.get("..", "folder").resolve("filename")। बाद में, मैं पथ स्ट्रिंग ".. \ फोल्डर \ filename" प्राप्त करना चाहता हूं (मैं विंडोज़ पर हूं, इसलिए बैकस्लेश)। जब मैं मैन्युअल संकलन या ग्रहण से इस कोड को चलाता हूं, तो यह ठीक काम करता है।

हालांकि, जब मैं इसे मैवेन का उपयोग करके चलाता हूं, तो यह अब और काम नहीं करता है। toString() विधि वास्तविक पथ स्ट्रिंग के बजाय [.., folder, filename] देता है। path.normalize() का उपयोग करने में मदद नहीं करता है। path.toFile().getPath() का उपयोग करना जो मैं ढूंढ रहा हूं उसे वापस कर देता है, लेकिन मुझे लगता है कि केवल nio.path API का उपयोग करके समाधान होना चाहिए।

+2

यह सही नहीं लगता है। दोनों 'Paths.get ("पथ/से/फ़ाइल")। ToString() 'और' Paths.get ("पथ", "से", "फ़ाइल")। ToString() 'दोनों वापसी'" पथ/से/फाइल "मेरे लिए"। – cambecc

+0

'Paths.get (" path/to ") के बारे में भी सही है। हल करें (" फ़ाइल ")। ToString()', जो 'पथ/से/फ़ाइल' 'देता है। – cambecc

+0

मैं गलत हो सकता हूं लेकिन मेरे लिए दोनों एक ही स्ट्रिंग लौटते हैं !!! – NINCOMPOOP

उत्तर

22

उपयोग:

Paths.get(...).normalize().toString() 

एक अन्य समाधान हो woul: Paths.get("/tmp", "foo").toString() रिटर्न यहाँ /tmp/foo:

Paths.get(...).toAbsolutePath().toString() 

हालांकि, अगर आप अजीब परिणाम प्राप्त। आपका फाइल सिस्टम क्या है?

+0

यह विफल होने पर अधिक जानकारी के साथ अद्यतन प्रश्न। – Jorn

+0

क्या आप वाकई java.nio.Paths का उपयोग करते हैं? – fge

+0

हां, मुझे यकीन है :) 'java.nio.file.Paths', सटीक होने के लिए। – Jorn

संबंधित मुद्दे