将 NSString 附加到 NSURL?
Posted
技术标签:
【中文标题】将 NSString 附加到 NSURL?【英文标题】:Append NSString to NSURL? 【发布时间】:2011-07-15 06:36:44 【问题描述】:我有一个 NSURL,一个文件路径,我想在它的末尾添加一个 NSString(文件名),我该怎么做?但在这之后,我不希望整个事情成为一个 NSURL。
谢谢。
【问题讨论】:
【参考方案1】:我认为这很简单:
NSString *s = [aUrl.path stringByAppendingString:@"newString"];
【讨论】:
如果你使用这个,最终得到一个 NSURL,你必须这样做:[NSURL URLWithString:[aUrl.path stringByAppendingString:@"newString"]]
【参考方案2】:
我认为这是一个很好的解决方案:
NSURL *bUrl = [aUrl URLByAppendingPathComponent:@"newString"];
在 Swift 中,您可以执行以下操作,
var bURL = aURL.URLByAppendingPathComponent( "newString" )
你也可以声明URL是否是目录,
var bURL = aURL.URLByAppendingPathComponent( "newString", isDirectory: true )
【讨论】:
注意这对路径组件字符串进行 url 编码 这也会在字符串之前添加一个斜杠。 在 Swift 3、Xcode 8.2.1 中,现在是:appendingPathComponent(_:)
。 Docs.【参考方案3】:
如果你有一个指向目录的文件 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;
【讨论】:
以上是关于将 NSString 附加到 NSURL?的主要内容,如果未能解决你的问题,请参考以下文章