您的位置:首页 > 移动开发 > IOS开发

清除缓存文件

2016-01-28 14:42 381 查看
1 显示

CGFloat  cacheSize;

-(void)viewDidAppear:(BOOL)animated
{
//计算缓存数据大小
cacheSize = [SettingViewController folderSizeAtPath:[NSString stringWithFormat:@"%@/Library/Caches/ImageCache/",NSHomeDirectory()]];
//    NSLog(@">>>%@",[NSString stringWithFormat:@"%.1lfMB",cacheSize]);
[setTableView reloadData];

//    NSLog(@"缓存路径---%@",[NSString stringWithFormat:@"%@/Library/Caches/ImageCache/",NSHomeDirectory()]);
}


2 点击清除

(void)click{
//清除缓存
[self clearCache:[NSString stringWithFormat:@"%@/Library/Caches/ImageCache/",NSHomeDirectory()]];
}

//计算单个文件大小

+(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 +=[SettingViewController 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];

UIAlertView * alter=[[UIAlertView alloc]initWithTitle:nil message:@"缓存清除成功" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: nil];

[alter show];

cacheSize=0;

[setTableView reloadData];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 缓存