廢話不多說直接上代碼,需要的自取
獲取緩存大小:
-(void)getCacheSize{
//得到緩存路徑
NSString * path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
NSFileManager * manager = [NSFileManager defaultManager];
CGFloat size = 0;
//首先判斷是否存在緩存文件
if ([manager fileExistsAtPath:path]) {
NSArray * childFile = [manager subpathsAtPath:path];
for (NSString * fileName in childFile) {
//緩存文件絕對路徑
NSString * absolutPath = [path stringByAppendingPathComponent:fileName];
size = size + [manager attributesOfItemAtPath:absolutPath error:nil].fileSize;
}
//計算sdwebimage的緩存和系統(tǒng)緩存總和
size = size + [[SDWebImageManager sharedManager].imageCache getSize];
}
size = [NSString stringWithFormat:@"%.2fM",size / 1024 / 1024];
}
刪除緩存:
-(void)cleanCache{
//獲取緩存路徑
NSString * path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
NSFileManager * manager = [NSFileManager defaultManager];
//判斷是否存在緩存文件
if ([manager fileExistsAtPath:path]) {
NSArray * childFile = [manager subpathsAtPath:path];
//逐個刪除緩存文件
for (NSString *fileName in childFile) {
NSString * absolutPat = [path stringByAppendingPathComponent:fileName];
[manager removeItemAtPath:absolutPat error:nil];
}
//刪除sdwebimage的緩存
[[SDWebImageManager sharedManager].imageCache clearMemory];
}
//這里是又調(diào)用了得到緩存文件大小的方法,是因為不確定是否刪除了所有的緩存,所以要計算一遍,展示出來
[self getCacheSize];
}