46

私は iPhone カメラを使用するアプリに取り組んでおり、いくつかのテストを行った後、キャプチャしたすべてのビデオをアプリの tmp ディレクトリに保存していることに気付きました。電話を再起動しても、キャプチャは消えません。

これらのキャプチャをすべて削除する方法はありますか、またはすべてのキャッシュと一時ファイルを簡単に消去する方法はありますか?

4

6 に答える 6

48

はい。この方法はうまくいきます:

+ (void)clearTmpDirectory
{
    NSArray* tmpDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:NULL];
    for (NSString *file in tmpDirectory) {
        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL];
    }
}
于 2013-06-14T01:04:47.670 に答える
2

これはジェイルブレイクされた 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]);
        }
    }
}
于 2012-06-16T12:24:49.050 に答える