iOS 缓存的获取计算与清除归零

1,获取路径并进行数据的拼接

//获取缓存
- (void)caculatorSize{
    
    NSString *cacheFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"];
    NSFileManager* manager = [NSFileManager defaultManager];
    _manager = manager;
    if (![_manager fileExistsAtPath:cacheFilePath]){
        NSLog(@"Null");
    }
    NSEnumerator *childFilesEnumerator = [[_manager subpathsAtPath:cacheFilePath] objectEnumerator];
    NSString* fileName;
    _fileName = fileName;
    long long folderSize = 0;
    while ((_fileName = [childFilesEnumerator nextObject]) != nil){
        
        NSString* fileAbsolutePath = [cacheFilePath stringByAppendingPathComponent:_fileName];
        _fileAbsolutePath = fileAbsolutePath;
        folderSize += [[_manager attributesOfItemAtPath:fileAbsolutePath error:nil]fileSize];
    }
    
    CGFloat intg = [[SDImageCache sharedImageCache] getSize];
    CGFloat sum = folderSize + intg;
    NSString * currentVolum = [NSString stringWithFormat:@"%@",[self fileSizeWithInterge:sum]];
    _currentVolum = currentVolum;
    
   

}

2,计算缓存,根据大小添加相应单位

//计算文件大小
- (NSString *)fileSizeWithInterge:(CGFloat)size{
    // 1k = 1024, 1m = 1024k
    if (size < 1024) {// 小于1k
        if (size <200){
            
            return [NSString stringWithFormat:@"%@B",@"0"];
        }
        return [NSString stringWithFormat:@"%ldB",(long)size];
    }else if (size < 1024 * 1024){// 小于1m
        CGFloat aFloat = size/1024;
        return [NSString stringWithFormat:@"%.0fK",aFloat];
    }else if (size < 1024 * 1024 * 1024){// 小于1G
        CGFloat aFloat = size/(1024 * 1024);
        return [NSString stringWithFormat:@"%.2fM",aFloat];
    }else{
        CGFloat aFloat = size/(1024*1024*1024);
        return [NSString stringWithFormat:@"%.1fG",aFloat];
    }
}

3,清除缓存

//清除缓存
- (void)cleanTheCaheForWebView{
    
    NSString *cacheFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"];
    NSEnumerator *childFilesEnumerator = [[_manager subpathsAtPath:cacheFilePath] objectEnumerator];
    NSString *fileOne;
    while ((fileOne = [childFilesEnumerator nextObject]) != nil){
        
        NSString* fileAbsolutePath = [cacheFilePath stringByAppendingPathComponent:fileOne];
        //过滤掉不想清除的文件
        if ([fileAbsolutePath rangerOfString:@"JPUSH"].location != NSNotFound){

         }else{
          
           [_manager removeItemAtPath:fileAbsolutePath error:nil];
         }

    }
    
}

 

转载于:https://my.oschina.net/Kuture/blog/733013

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值