清除缓存功能
来源:互联网 发布:网络招生 熊龙 编辑:程序博客网 时间:2024/05/17 07:16
代码有点多,可以写一个工具类继承自NSObject
工具类.h文件
#import <Foundation/Foundation.h>#import "UIImageView+WebCache.h"@interface ClearCacheTool : NSObject+(float)fileSizeAtPath:(NSString *)path;+(float)folderSizeAtPath:(NSString *)path;+(void)clearCache:(NSString *)path;@end
工具类.m文件
//计算单个文件大小+(float)fileSizeAtPath:(NSString *)path{ NSFileManager *fileManager=[NSFileManager defaultManager]; if([fileManager fileExistsAtPath:path]){ long long size=[fileManager attributesOfItemAtPath:path error:nil].fileSize; return size/1024.0/1024.0; } return 0;}//计算目录大小+(float)folderSizeAtPath:(NSString *)path{ NSFileManager *fileManager=[NSFileManager defaultManager]; float folderSize; if ([fileManager fileExistsAtPath:path]) { NSArray *childerFiles=[fileManager subpathsAtPath:path]; for (NSString *fileName in childerFiles) { NSString *absolutePath=[path stringByAppendingPathComponent:fileName]; folderSize +=[ClearCacheTool fileSizeAtPath:absolutePath]; } //SDWebImage框架自身计算缓存的实现 folderSize+=[[SDImageCache sharedImageCache] getSize]/1024.0/1024.0; return folderSize; } return 0;}//清理文件+(void)clearCache:(NSString *)path{ NSFileManager *fileManager=[NSFileManager defaultManager]; if ([fileManager fileExistsAtPath:path]) { NSArray *childerFiles=[fileManager subpathsAtPath:path]; for (NSString *fileName in childerFiles) { //如有需要,加入条件,过滤掉不想删除的文件 NSString *absolutePath=[path stringByAppendingPathComponent:fileName]; [fileManager removeItemAtPath:absolutePath error:nil]; } } [[SDImageCache sharedImageCache] cleanDisk];}
在控制器里实现
#import "ClearCacheTool.h"@interface ViewController ()<UIAlertViewDelegate>@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];}- (IBAction)clear:(id)sender { //清除Caches文件夹的文件 NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]; NSLog(@"cachePath=%@",cachePath); float foldersize = [ClearCacheTool folderSizeAtPath:cachePath]; if (foldersize>0) { NSString *altStr = [NSString stringWithFormat:@"缓存大小为%.2fM,确定要清理缓存吗?",foldersize]; UIAlertView *altView = [[UIAlertView alloc]initWithTitle:@"提示" message:altStr delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil]; [altView show]; }}- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex == 1) { }else{ NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]; [ClearCacheTool clearCache:cachePath]; }}
0 0
- android 清除缓存功能
- 清除缓存功能
- 清除缓存功能
- 清除缓存功能
- 清除缓存功能
- android APP清除缓存功能
- 清除缓存功能的添加
- android清除缓存功能实现
- Android清除缓存功能实现
- 获取缓存大小和清除缓存功能
- 获取缓存大小和清除缓存功能
- 获取缓存大小和清除缓存功能
- 获取缓存大小和清除缓存功能
- 给App添加缓存功能、清除缓存功能
- Android APP中清除缓存功能详解
- iOS开发 - Swift实现清除缓存功能
- Android APP中清除缓存功能详解
- Android APP中清除缓存功能详解
- 在虚幻4中显示鼠标并自定鼠标样式
- Kotlin 1.0 Released: Pragmatic Language for JVM and Android
- 2web漏扫
- Jenkins服务器安装与配置
- 使用stl中的 advance和 distance 方法来进行iterator的加减 http://blog.csdn.net/tangaowen/article/details/7515558
- 清除缓存功能
- [solr] - Facet - autocomplete
- android studio Error:Cause: peer not authenticated的解决方案
- ZooKeeper实现分布式队列Queue
- Android 签名验证机制
- Android开发笔记(六十五)多样的菜单
- PHP之APP接口,XML介绍,JSON介绍
- mysql远程登录权限设置
- 通过一个实例学会时间复杂度的计算