デバイスのディレクトリパスとNSFileManager

データをどのディレクトリに入れるかを整理する。

・cachesディレクト

このディレクトリ下のデータは、アプリがアクティブの時でも削除される可能性がある

・tmpディレクト

このディレクトリ下のデータは、 アプリがアクティブの時は保持され続ける

・Documentsディレクト

このディレクトリ下のデータは、アプリがアンインストールされない限り保持され続ける

参考 [http://qiita.com/zck/items/9d087d498ce711b22c04:title]

tmpディレクトリまでのパス

NSString *tmpDirPath = NSTemporaryDirectory();

cachesディレクトリまでのパス

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

Documentsディレクトリまでのパス

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

ファイルを保存したり、管理する場合、通常これらどのディレクトリにしても配下に新しいディレクトリを用意して管理することになる。
そこでNSFileManagerを使用して、新しいディレクトリを作り、imageファイルを保存する方法をおさらい

今回は、Documentsディレクトリ配下にsampleDirectoryというディレクトリを作る。

viewdidloardとかに
Asset catalogで指定した画像をimageに入れる(Asset catalogに入れた場合、画像は消去してok)

UIImage *image = [UIImage imageNamed: @"dog"];
    NSData *imageData = UIImagePNGRepresentation(image);


ディレクトリ作成の前に新しく作るディレクトリまでのpathを取得する。

NSString *newDocumentsDirPath = [DocumentsDirPath stringByAppendingPathComponent:@"sampleDirectory"];


この時点ではまだpathを取得しただけ。実際にディレクトリは存在しない

NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error = nil;

//ディレクトリを作る
    BOOL created = [fileManager createDirectoryAtPath:newDocumentsDirPath withIntermediateDirectories:YES attributes:nil error:&error];
    
    if(!created){
    
        NSLog(@"作れなかったよ");
    }


stringByAppendingPathComponentメソッドを使用して、ディレクトリ配下にdog.igoファイルを追加したpathを取得しwriteToFileメソッドでファイルを書き込む

NSString *filePath =  [newDocumentsDirPath stringByAppendingPathComponent:@"dog.igo"];

[imageData writeToFile:filePath atomically:YES];

 ```