清除缓存
来源:互联网 发布:uujuly淘宝店铺 编辑:程序博客网 时间:2024/05/06 07:30
清理缓存的几种方法
- (long long) fileSizeAtPath:(NSString*) filePath{NSFileManager* manager = [NSFileManager defaultManager];
if ([manager fileExistsAtPath:filePath]){
return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
}
return 0;
}
//遍历文件夹获得文件夹大小,返回多少M
- (float ) folderSizeAtPath:(NSString*) folderPath{
NSFileManager* manager = [NSFileManager defaultManager];
if (![manager fileExistsAtPath:folderPath]) return 0;
NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
NSString* fileName;
long long folderSize = 0;
while ((fileName = [childFilesEnumerator nextObject]) != nil){
NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
folderSize += [self fileSizeAtPath:fileAbsolutePath];
}
return folderSize/(1024.0*1024.0);
}
1. 清除缓存第一种
- (void)action:(id)sender
{
//彻底清除缓存第一种方法
UIButton * button = sender;
[button setTitle:@"清理完毕" forState:UIControlStateNormal];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path = [paths lastObject];
NSString *str = [NSString stringWithFormat:@"缓存已清除%.1fM", [self folderSizeAtPath:path]];
NSLog(@"%@",str);
NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:path];
for (NSString *p in files) {
NSError *error;
NSString *Path = [path stringByAppendingPathComponent:p];
if ([[NSFileManager defaultManager] fileExistsAtPath:Path]) {
[[NSFileManager defaultManager] removeItemAtPath:Path error:&error];
}
}
2. SDImage第三方清除缓存的方法
[[SDImageCache sharedImageCache] clearDisk];
[[SDImageCache sharedImageCache] clearMemory];
3. 彻底清除缓存第二种方法
dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
, ^{
NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSLog(@"%@", cachPath);
NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:cachPath];
NSLog(@"files :%d",[files count]);
for (NSString *p in files) {
NSError *error;
NSString *path = [cachPath stringByAppendingPathComponent:p];
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
[[NSFileManager defaultManager] removeItemAtPath:path error:&error];
}
}
[self performSelectorOnMainThread:@selector(clearCacheSuccess) withObject:nil waitUntilDone:YES];});
}
{
NSLog(@"清理成功");
}
0 0
- 清除缓存
- 清除缓存
- 清除缓存,
- 清除缓存!
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- 清除缓存
- Common.Logging
- Machine Learning 房价预测实例
- ajax+fromData 上传图片
- 在一个千万级的数据库查寻中,如何提高查询效率?
- 经典的css reset代码 (reset.css)
- 清除缓存
- 注解@PostConstruct与@PreDestroy详解及实例
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- VS2013+QT5.7.0_X86_MINGW32编译webcamoid
- Hadoop笔记五之Hadoop伪分布安装
- 贝塞尔曲线的解读,可以用于弧形移动动画
- js获取当前日期和星期几
- 判断一个文件是否为二进制文件
- Java类之间的关联关系