1

以下のコードを使用してファイル パスを取得します。

NSString *executableName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleExecutable"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
path = [path stringByAppendingPathComponent:executableName];

次に、データをファイル (settings.bundle) に保存したい

NSString *filePath = [path stringByAppendingPathComponent:@"settings.bundle"];
[someString writeToFile:settingsPath atomically:YES encoding:NSUTF8StringEncoding error:&error];

エラー:

Error Domain=NSCocoaErrorDomain Code=4 "The folder “settings.bundle” doesn’t exist." UserInfo=0x7ff8894cecc0 {NSFilePath=/Users/xxxx/Library/Application Support/AppName/settings.bundle, NSUserStringVariant=Folder, NSUnderlyingError=0x7ff8894a1750 "The operation couldn’t be completed. No such file or directory"}

しかし、mkdir AppName manual の場合、エラーはありません:

 mkdir /Users/xxxx/Library/Application Support/AppName

だから私の質問は: ココアは osx でフォルダーを自動的に作成できませんか?

4

1 に答える 1

2

これを試してみてください:[[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:&error];

このメソッドは、指定されたパスにディレクトリを作成するだけでなく、存在しない可能性のある中間ディレクトリも作成します。

于 2012-07-12T05:47:24.213 に答える