将包含URL的NSString转换为POSIX路径

时间:2011-04-16 02:29:14

标签: objective-c cocoa nsstring nspathcontrol

在将文件或文件夹放到文件夹或文件夹上之后,我正在从NSPathControl检索文件夹或文件的POSIX路径。

我是初学者,但我能够通过这种方式从代码中获取控件的值(称为Destination):

NSString *filepath;
filepath = [Destination stringValue];

这给了我类似的东西

file://test/My%20New%20Project/

但我希望以POSIX路径形式:

/test/My New Project
因为我需要将它传递给运行命令行程序的NSTask

有关如何将此NSString的内容从URL格式转换为POSIX路径的任何建议吗?

1 个答案:

答案 0 :(得分:17)

使用-URL代替-stringValue。这将返回一个NSURL对象,表示路径控件显示的路径。然后,您可以将-path发送到NSURL对象以获取其字符串表示,而不使用URL方案/转义。例如:

NSURL *fileURL = [Destination URL];
NSString *filepath = [fileURL path];

NSString *filepath = [[Destination URL] path];