2011-03-14 12 views
20

मेरे पास एक NSRL, एक फ़ाइल पथ है, और मैं इसके अंत में एक एनएसएसटींग जोड़ना चाहता हूं (फ़ाइल का नाम) मैं यह कैसे कर सकता हूं? लेकिन इसके बाद मैं नहीं चाहता कि पूरी चीज एक NSURL हो।एनएसआरआरआर को एनएसआरटीआर में संलग्न करें?

धन्यवाद।

उत्तर

6

मुझे लगता है कि के रूप में यह रूप में सरल है:

NSString *s = [aUrl.path stringByAppendingString:@"newString"]; 
+2

आप इस का उपयोग करते हैं, अंत में एक NSURL, तो आप इस करना होगा प्राप्त करने के लिए: '[NSURL URLWithString: [aUrl.path stringByAppendingString: @" newString "]]' – Myxtic

96

मुझे लगता है कि यह अच्छा समाधान है:

NSURL *bUrl = [aUrl URLByAppendingPathComponent:@"newString"]; 

स्विफ्ट में आप निम्नलिखित कर सकता है,

var bURL = aURL.URLByAppendingPathComponent("newString") 

तुम भी राज्य कर सकते हैं चाहे यूआरएल एक निर्देशिका है,

var bURL = aURL.URLByAppendingPathComponent("newString", isDirectory: true) 
+6

नोट इस यूआरएल एन्कोडिंग करता है पथ घटक स्ट्रिंग – amleszk

+1

यह सही समाधान है। –

+2

यह स्ट्रिंग से पहले एक स्लैश भी प्रीपेड करता है। –

2

आप एक में एक फ़ाइल NSURL है और आप एक NSString इसके परिशिष्ट में एक फ़ाइल नाम के साथ NSURL के पथ युक्त साथ खत्म करना चाहते हैं, इस का उपयोग करें:

NSURL *url = [NSURL fileURLWithPath:@"/System" isDirectory:YES]; 
NSString *filename = @"foo"; 
NSString *result = [url.path stringByAppendingPathComponent:filename]; 

तुम भी URLByAppendingPathComponent उपयोग कर सकते हैं लेकिन जो एक अतिरिक्त कदम जोड़ता है जो एक अतिरिक्त NSURL ऑब्जेक्ट बनाता है जिसकी आवश्यकता नहीं होती है।

NSURL *url = [NSURL fileURLWithPath:@"/System" isDirectory:YES]; 
NSString *filename = @"foo"; 
NSURL *newURL = [url URLByAppendingPathComponent:filename]; 
NSString *result = newURL.path; 
संबंधित मुद्दे