【发布时间】:2011-07-15 06:36:44
【问题描述】:
我有一个 NSURL,一个文件路径,我想在它的末尾添加一个 NSString(文件名),我该怎么做?但在这之后,我不希望整个事情成为一个 NSURL。
谢谢。
【问题讨论】:
标签: objective-c macos nsstring append nsurl
我有一个 NSURL,一个文件路径,我想在它的末尾添加一个 NSString(文件名),我该怎么做?但在这之后,我不希望整个事情成为一个 NSURL。
谢谢。
【问题讨论】:
标签: objective-c macos nsstring append nsurl
我认为这很简单:
NSString *s = [aUrl.path stringByAppendingString:@"newString"];
【讨论】:
[NSURL URLWithString:[aUrl.path stringByAppendingString:@"newString"]]
我认为这是一个很好的解决方案:
NSURL *bUrl = [aUrl URLByAppendingPathComponent:@"newString"];
在 Swift 中,您可以执行以下操作,
var bURL = aURL.URLByAppendingPathComponent( "newString" )
你也可以声明URL是否是目录,
var bURL = aURL.URLByAppendingPathComponent( "newString", isDirectory: true )
【讨论】:
appendingPathComponent(_:)。 Docs.
如果你有一个指向目录的文件 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;
【讨论】: