2012-08-03 5 views
16

私のMacアプリはサンドボックス化されており、ファイルを保存する必要があります。このファイルはどこに保存しますか?オープンパネルを使わずに、これが許される特定の場所を見つけることができないようです。これはiOSでのやり方です:サンドボックス化されたMacアプリはどこにファイルを保存できますか?

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *path = [paths objectAtIndex:0]; 

Macのサンドボックスディレクトリに相当するものは何ですか?

答えて

19

をコードスニペットがオン動作すること:ここで

〜/ライブラリ/コンテナ/ com.yourcompany.yourappname/

は、私がこれまでのところ、私は後でそれを改善しますしているものですあなたのアプリケーションがサンドボックス化されているかどうかに関係なく、Mac。

サンドボックス化されていないMacアプリでは、pathは自宅のDocumentsフォルダを参照します。 /Users/username/Documents

サンドボックスアプリでは、アプリサンドボックス内のフォルダを指します。 /Users/username/Library/Containers/com.yourcompany.YourApp/Documents

詳細については、the docsを参照してください。

8

アップルのサンドボックスガイドは非常に便利です。見つけたのはhereです。

私の質問hereに返信のtheAmateurProgrammerが説明したように、基本的にあなたのアプリ専用のフォルダがあります。

//Create App directory if not exists: 
NSFileManager* fileManager = [[NSFileManager alloc] init]; 
NSString* bundleID = [[NSBundle mainBundle] bundleIdentifier]; 
NSArray* urlPaths = [fileManager URLsForDirectory:NSApplicationSupportDirectory 
             inDomains:NSUserDomainMask]; 

NSURL* appDirectory = [[urlPaths objectAtIndex:0] URLByAppendingPathComponent:bundleID isDirectory:YES]; 

//TODO: handle the error 
if (![fileManager fileExistsAtPath:[appDirectory path]]) { 
    [fileManager createDirectoryAtURL:appDirectory withIntermediateDirectories:NO attributes:nil error:nil]; 
} 
関連する問題