如何从NSURL获取路径/目录组件?

时间:2012-10-04 01:51:22

标签: macos cocoa nsurl

我从NSSavePanel检索了一个NSURL。我现在有这个NSURL,它给了我以下内容:

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

现在,我很容易使用以下内容检索文件名:

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

这为我提供了本地化的文件名,如预期的那样:asdf%20asdf

那么,我如何获得路径,如下所示: file://localhost/Users/brett/Documents/

3 个答案:

答案 0 :(得分:31)

-[NSURL URLByDeletingLastPathComponent]是实现这一目标的最简单方法。

答案 1 :(得分:27)

您可以使用NSString方法处理文件路径。例如,

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

您可以在Apple文档中找到其他有用的方法:NSString Class Reference - > 使用路径部分

答案 2 :(得分:1)

直接来自您的NSSavePanel:

NSSavePanel *savePanel;
...
NSString *path = savePanel.directoryURL.path;