为什么即使使用stringByExpandingTildeInPath,我的文件URL(具有相对路径)也会失败?

时间:2013-09-02 16:40:16

标签: objective-c macos file-io path

我正在尝试创建一个有效的文件URL,指向我知道存在的文件。

NSURL* fileURL = [NSURL fileURLWithPath:[@"~/Users/zak/global.scss" 
stringByExpandingTildeInPath] isDirectory:NO];
NSLog(@"Looks like you want me to open a %@ file!", fileURL.pathExtension);

NSError *err;
if (![fileURL checkResourceIsReachableAndReturnError:&err]) {
    NSLog(@"%@", err);
}
else {
    NSLog(@"success!!!");
};

总是让编译器继续告诉我

Error Domain=NSCocoaErrorDomain Code=260 "The file “global.scss” couldn’t be 
opened because there is no such file." UserInfo=0x1021937a0 {NSURL=file://
localhost/~/Users/zak/global.scss, 
NSFilePath=/~/Users/zak/global.scss, 
NSUnderlyingError=0x10212f4b0 "The operation couldn’t be completed.
No such file or directory"}

为什么这不起作用?我是否需要使用某种常量作为基本URL?

1 个答案:

答案 0 :(得分:0)

~/Users/zak/globals.scss几乎可以确定存在。 ~处于一个非常奇怪的地方。您可以尝试~zak/global.scss/Users/zak/globals.scss。要检查路径,只需在终端窗口中执行ls PATHTOTEST - 它会告诉您它是否存在(如果失败则显示路径的扩展)。