iOS开发 _计算缓存大小/清理
2016-10-15 20:37
453 查看
1.获取路径:
2.计算目录大小
3.根据路径删除文件
4.清除缓存按钮的点击事件
// 获取Caches目录路径 - (NSString *)getCachesPath{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES); NSString *cachesDir = [paths lastObject]; return cachesDir; }
2.计算目录大小
- (CGFloat)folderSizeAtPath:(NSString *)path{ NSFileManager *manager = [NSFileManager defaultManager]; CGFloat size = 0; if ([manager fileExistsAtPath:path]) { // 目录下的文件计算大小 NSArray *childrenFile = [manager subpathsAtPath:path]; for (NSString *fileName in childrenFile) { NSString *absolutePath = [path stringByAppendingPathComponent:fileName]; size += [manager attributesOfItemAtPath:absolutePath error:nil].fileSize; } //SDWebImage的缓存计算 size += [[SDImageCache sharedImageCache] getSize]/1024.0/1024.0; // 将大小转化为M return size / 1024.0 / 1024.0; } return 0; }
3.根据路径删除文件
- (void)cleanCaches:(NSString *)path{ NSFileManager *fileManager = [NSFileManager defaultManager]; if ([fileManager fileExistsAtPath:path]) { NSArray *childrenFiles = [fileManager subpathsAtPath:path]; for (NSString *fileName in childrenFiles) { // 拼接路径 NSString *absolutePath = [path stringByAppendingPathComponent:fileName]; // 将文件删除 [fileManager removeItemAtPath:absolutePath error:nil]; } } //SDWebImage的清除功能 [[SDImageCache sharedImageCache] clearDisk]; [[SDImageCache sharedImageCache] clearMemory]; }
4.清除缓存按钮的点击事件
- (void)cleanButtonAction:(UIButton *)btn{ CGFloat size = [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject] + [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).lastObject] + [self folderSizeAtPath:NSTemporaryDirectory()]; NSString *message = size > 1 ? [NSString stringWithFormat:@"缓存%.2fM", size] : [NSString stringWithFormat:@"缓存%.2fK", size * 1024.0]; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"删除缓存" message:message preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) { [self cleanCaches:[self getCachesPath]]; }]; UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:(UIAlertActionStyleCancel) handler:nil]; [alertController addAction:action]; [alertController addAction:cancel]; [self presentViewController:alertController animated:YES completion:nil]; }
相关文章推荐
- iOS 计算缓存大小以及清理缓存
- IOS开发——ASIDownloadCache计算缓存大小&清除缓存
- ios开发计算缓存的大小以及清除
- iOS计算App缓存的大小以及清理、iOS应用跳转到appstore评分、文字加阴影、 NSMutableArray到NSData的转化
- iOS 计算SDWebImage本地缓存图片大小+清理本地缓存的图片
- iOS开发-清理缓存功能的实现
- 清理缓存和计算缓存内容大小
- iOS开发-清理缓存功能的实现
- 计算缓存文件大小并清理缓存
- iOS开发-清理缓存功能的实现
- iOS计算缓存文件大小, 和清除缓存功能
- iOS计算缓存文件的大小
- iOS中计算缓存文件的大小判断
- iOS开发-清理缓存功能的实现
- iOS 缓存,以及缓存大小,缓存清理等
- iOS开发-清理缓存功能的实现
- Android开发:计算缓存大小并且清空缓存
- iOS 计算缓存文件大小 删除缓存
- iOS开发-清理缓存功能的实现
- iOS开发-清理缓存功能的实现