Cocoa contentsOfDirectoryAtPath:方法因某些用户的错误而失败 - Mac OS X.

时间:2010-03-30 17:01:56

标签: objective-c cocoa macos

以下是代码片段:

// Get into the data folder of it
keychainPath = [keychainPath stringByAppendingPathComponent:@"data/default"];

DLog(@"Keychain data path: %@", keychainPath);

// Define Filemanager
NSFileManager *fm = [NSFileManager defaultManager];

// Catch any errors
NSError *dataError = nil;

// get all the files in the directory
NSArray *dataFiles = [fm contentsOfDirectoryAtPath:keychainPath error:&dataError];

if(!dataFiles)
 NSLog(@"Error: %@",dataError);

现在这对大多数人来说完全正常,但有少数人报告了问题,'dataError'对象给出了:

  Error: Error
Domain=NSCocoaErrorDomain Code=260 UserInfo=0x14d1fa10 "The folder
“default” doesn’t exist." Underlying Error=(Error
Domain=NSOSStatusErrorDomain Code=-43 "The operation couldn’t be
completed. (OSStatus error -43.)" (File not found))

有这个问题的人说文件/文件夹'默认'确实存在于应该的位置,所以我不知道为什么这不起作用。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

谢谢Peter,keychainPath只是一些字符串,如'〜/ Library / etc.etc。'

回答我自己的问题:

事实证明问题是因为有些人的Mac OS X装置对代字号感到困惑(〜)

使用方法

[keychainPath stringByExpandingTildeInPath];

一旦完成,问题就解决了。

我想这个问题的原因是有多个用户帐户的人,我没有。