NSDocumentDirectory にあるすべてのドキュメントを NSCachesDirectory に移動し、アプリの次のバージョン更新の最初のアプリ起動時にそれらの NSDocument ファイルをすべて削除しようとしています。私がこれを行っている唯一の理由は、Apple の iOS データ ストレージ ガイドラインを順守するためです。私のアプリの更新は、.PDF ファイルを NSDocumentsDirectory に保存するために拒否されたからです (理由はわかりません。更新 (アプリはほぼ 2 年前のもので、初日からこの方法で .PDF を保存しています)、厳密なレビュー担当者を獲得したのでしょうか?)
ユーザーが既にダウンロードした .PDF ファイルをすべて NSCachesDirectory に移動し、NSDocumentDirectory から削除する必要があります。
これを達成できる簡単な方法はありますか?
提供されたヘルプに事前に感謝します。
私はこれを試しました:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSUserDefaults *Defaults;
int launchCount;
Defaults = [NSUserDefaults standardUserDefaults];
launchCount = [Defaults integerForKey:@"launchCount" ] + 1;
[Defaults setInteger:launchCount forKey:@"launchCount"];
[Defaults synchronize];
if(launchCount == 1) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *path2 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *dest = [path2 objectAtIndex:0];
NSArray *Contents = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:&error];
for(NSString *source in Contents)
{
if(![fileManager moveItemAtPath:source
toPath:dest
error:&error])
{
//TODO: Handle error
NSLog(@"Error: %@", error);
}
}
}
しかし、コンソールに次のエラーが表示されます。
NSFilePath=Test.pdf、NSDestinationFilePath=/Users/Charley/Library/Application Support/iPhone Simulator/5.1/Applications/96EB01D1-81B7-4ECE-B337-D2D663969EE3/Library/Caches、NSUnderlyingError=0xb566d50「操作を完了できませんでした」 。 ファイルが存在しています"