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]; } } }