iOS清除所有缓存

计算缓存

NSString *libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];
CGFloat fileSize=[self folderSizeAtPath:libPath];
- (float ) folderSizeAtPath:(NSString*) folderPath{
    NSFileManager* manager = [NSFileManager defaultManager];
    if (![manager fileExistsAtPath:folderPath]) return 0;
    NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
    NSString* fileName;
    long long folderSize = 0;
    while ((fileName = [childFilesEnumerator nextObject]) != nil){
        NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
        folderSize += [self fileSizeAtPath:fileAbsolutePath];
    }
    return folderSize/(1024.0*1024.0);
}
- (long long)fileSizeAtPath:(NSString*) filePath{
    NSFileManager* manager = [NSFileManager defaultManager];
    if ([manager fileExistsAtPath:filePath]){
        return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
    }
    return 0;
}

清除缓存

- (void)action:(id)sender
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *path = [paths lastObject];
    
    NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:path];
    
    for (NSString *p in files) {
        NSError *error;
        NSString *Path = [path stringByAppendingPathComponent:p];
        if ([[NSFileManager defaultManager] fileExistsAtPath:Path]) {
            //清理缓存,保留Preference,里面含有NSUserDefaults保存的信息
            if (![Path containsString:@"Preferences"]) {
                [[NSFileManager defaultManager] removeItemAtPath:Path error:&error];
            }
        }else{
            
        }
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • App后期优化必须要考虑的问题——缓存。App基本功能——清除缓存。最近在做清除缓存的功能,所以好好研究了一下。这...
    墨痕未干阅读 6,298评论 0 14
  • 设置界面�中清除缓存的处理---** 每个App几乎都有清除缓存的功能** 一 手机上的磁盘缓存 == 从网络上下...
    Tuberose阅读 10,227评论 12 119
  • 缓存默认存储在cache中,APPStore中有一条明确规定,你的APP中缓存文件只能保存在沙盒路径下Caches...
    逍遥晨旭阅读 12,024评论 1 14
  • 绝大多数应用中都存在着清楚缓存的功能,形形色色,各有千秋,现为大家介绍一种最基础的清除缓存的方法。清除缓存基本上都...
    顽童大了已没那么笨阅读 24,399评论 13 45
  • 下午,带女儿去滑滑梯,非常冷,刺骨的风。活动区只有几个4到7岁的小女孩在玩,其中一个带头的女孩应该有八岁,是个标准...
    安哥贝贝阅读 1,365评论 0 0