2012-10-04 13 views
14

मैंने एनएसएसएलएनल से एनएसआरएल पुनर्प्राप्त किया। मैं अब इस NSURL जो मुझे देता है निम्नलिखित है:NSURL से पथ/निर्देशिका घटक कैसे प्राप्त करें?

[[[NSFileManager defaultManager] displayNameAtPath:pathAndFilename] stringByDeletingPathExtension]

यह मैं देता है:

file://localhost/Users/brett/Documents/asdf%20asdf.json

अब, यह मेरा पीछा कर की तरह कुछ का उपयोग कर बस फ़ाइलनाम को पुनः प्राप्त करने के लिए आसान है सिर्फ स्थानीय फ़ाइल नाम की उम्मीद, के रूप में: asdf%20asdf

तो, कैसे मैं पथ, इसलिए की तरह मिलता है:file://localhost/Users/brett/Documents/

उत्तर

27

आप फ़ाइल पथ के साथ काम करने के लिए NSString विधियों का उपयोग कर सकते हैं। उदाहरण के लिए,

NSString *directory = [[URL absoluteString] stringByDeletingLastPathComponent]; 
NSString *filename = [[URL absoluteString] lastPathComponent]; 

आप एप्पल डॉक्स में अन्य उपयोगी तरीकों मिल सकता है: NSString Class Reference ->पथ अनुभाग

+0

मुझे पता है कि, जहाँ तक कि फ़ाइल नाम चला जाता है, यह एक स्थानीय स्ट्रिंग नहीं है। यही कारण है कि मैं displayNameAtPath का उपयोग कर रहा था: NSFileManager को संदेश। अच्छा जवाब हालांकि! – Brett

+0

@ ब्रेट वैसे भी मुझे लगता है कि मैंने फ़ाइल निर्देशिका प्राप्त करने के बारे में आपके प्रश्न पर उत्तर दिया है। या आप क्या उम्मीद कर रहे थे? – Nekto

+0

आपने सही उत्तर दिया है, मैं बस NSRL फ़ंक्शन के बजाय एनएसएसटींग फ़ंक्शन का उपयोग करके डरता हूं। शायद मुझे नहीं होना चाहिए। धन्यवाद! – Brett

30

-[NSURL URLByDeletingLastPathComponent] के साथ कार्य करना सबसे आसान तरीका है इस लक्ष्य को हासिल किया जा सके।

+0

'NSString' से काफी बेहतर है। – Nestor

+0

स्पष्टीकरण: NSURL directoryURL = [fileURL URLByDeletingLastPathComponent]; – iamjustaprogrammer

1
सीधे अपने NSSavePanel से

:

NSSavePanel *savePanel; 
... 
NSString *path = savePanel.directoryURL.path; 
संबंधित मुद्दे