私は iPhone カメラを使用するアプリに取り組んでおり、いくつかのテストを行った後、キャプチャしたすべてのビデオをアプリの tmp ディレクトリに保存していることに気付きました。電話を再起動しても、キャプチャは消えません。
これらのキャプチャをすべて削除する方法はありますか、またはすべてのキャッシュと一時ファイルを簡単に消去する方法はありますか?
はい。この方法はうまくいきます:
+ (void)clearTmpDirectory
{
NSArray* tmpDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:NULL];
for (NSString *file in tmpDirectory) {
[[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL];
}
}
これはジェイルブレイクされた iPad でも動作しますが、ジェイルブレイクされていないデバイスでも動作するはずです。
-(void) clearCache
{
for(int i=0; i< 100;i++)
{
NSLog(@"warning CLEAR CACHE--------");
}
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError * error;
NSArray * cacheFiles = [fileManager contentsOfDirectoryAtPath:NSTemporaryDirectory() error:&error];
for(NSString * file in cacheFiles)
{
error=nil;
NSString * filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:file ];
NSLog(@"filePath to remove = %@",filePath);
BOOL removed =[fileManager removeItemAtPath:filePath error:&error];
if(removed ==NO)
{
NSLog(@"removed ==NO");
}
if(error)
{
NSLog(@"%@", [error description]);
}
}
}