2011-03-14 78 views
20

我有一个NSURL,一个文件路径,我想添加一个NSString到它的末尾(文件名)我该怎么做?但在此之后,我不希望整个事情成为NSURL。追加NSString到NSURL?

谢谢。

回答

6

我觉得这是非常简单的:

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

如果您使用此,得到​​最终的NSURL,你将不得不这样做:'[NSURL URLWithString:[aUrl.path stringByAppendingString:@ “newString”]]' – Myxtic 2014-07-31 04:58:30

96

我认为这是很好的解决方案:

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

在斯威夫特你能做到以下几点,

var bURL = aURL.URLByAppendingPathComponent("newString") 

您也可以状态该网址是否为目录,

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

注意这样做url编码的路径组件字符串 – amleszk 2012-05-31 14:03:19

+1

这是正确的解决方案。 – 2013-12-27 02:15:11

+2

这也会在字符串前加斜杠。 – 2014-01-18 15:38:42

2

如果你有一个文件NSURL到一个目录,并要与含有NSURL与附加给它的文件名路径的NSString结束,使用此:

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;