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