iOS经典讲解之清除缓存文件
作者:Loving_iOS
转载请标明出处:http://blog.csdn.net/loving_ios/article/details/49251321
清除缓存之前先要计算文件的大小:
// 计算目录大小
- (CGFloat)folderSizeAtPath:(NSString *)path
{
// 利用NSFileManager实现对文件的管理</span>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;
}
// 将大小转化为Mreturn size / 1024.0 / 1024.0;
}
return 0;
// 根据路径删除文件
- (void)cleanCaches:(NSString *)path
{// 利用NSFileManager实现对文件的管理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];}}
}
计算沙盒中文件的大小并删除沙盒中文件的例子:
- (void)cleanCaches
{[self cleanCaches:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject];[self cleanCaches:NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject];[self cleanCaches:NSTemporaryDirectory()];
}// 清除缓存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 *alert = [UIAlertController alertControllerWithTitle:nil message:message preferredStyle:(UIAlertControllerStyleAlert)];UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {[self cleanCaches];}];UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:(UIAlertActionStyleCancel) handler:nil];[alert addAction:action];[alert addAction:cancel];[self showDetailViewController:alert sender:nil];
iOS经典讲解之清除缓存文件相关推荐
- iOS经典讲解之使用instruments检测内存
这里是原文 入门 为了节省大家的时间,提供一个演示的Demo给大家. 代码传送门 . 下载后解压然后用Xcode打开. 编译运行APP后 然后在搜索框内输入任意词汇,点击结果你会看到下面的结果 正如你 ...
- iOS经典讲解之获取沙盒文件路径写入和读取简单对象
#import "RootViewController.h" @interface RootViewController () @end 实现文件: @implementation ...
- iOS经典讲解之判断App是否第一次启动
作者:Loving_iOS 转载请标明出处:http://blog.csdn.net/loving_ios/article/details/50435840 方法一.在didFinishLaunchi ...
- iOS经典讲解之App上架(可供销售)后App Store搜索不到的解决办法
App好不容易审核通过了,手动发布版本后,不断地在App Store搜索,就是搜不到,都是苹果的缓存机制惹的祸.急不急,一般情况下发布版本后几个小时或者更短时间App Store就会显示,但是有的时候 ...
- iOS经典讲解之UILabel居上居下显示
作者:刘新林 转载请标明出处:http://blog.csdn.net/loving_ios/article/details/51381778 在日常开发中,经常遇到UILabel内容显示问题,因为U ...
- 李洪强iOS经典面试题144-数据存储
李洪强iOS经典面试题144-数据存储 数据存储 sqlite中插入特殊字符的方法和接收到处理方法. 除'其他的都是在特殊字符前面加"/",而 ' -> '' .方法:k ...
- IOS NSUserDefaults 讲解 用法
IOS NSUserDefaults 讲解 用法 NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults ...
- iPhone与iPad开发实战——iOS 经典应用剖析视频--观看地址
iPhone与iPad开发实战--iOS 经典应用剖析视频 试看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo& ...
- 李洪强iOS经典面试题153- 补充
李洪强iOS经典面试题153- 补充 补充 有空就来解决几个问题,已经懒癌晚期没救了... UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模 ...
最新文章
- Oracle命令(一):Oracle登录命令
- 成功解决pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)
- Linux下的inode记录
- tensorflow tf.train.ExponentialMovingAverage().variables_to_restore()函数 (用于加载模型时将影子变量直接映射到变量本身)
- 使用OpenCV在Python中进行人脸和眼睛检测
- jenkins 集成java搅拌_java-Jenkins中的集成测试
- 8月28日服务器例行维护公告,天涯明月刀8月28日更新了什么-8月28日更新内容介绍...
- 属性动画实现卫星菜单效果
- Docker安装Tomcat,安装elasticsearch+kibana
- Monocular Human Pose Estimation: A Survey of Deep Learning-based Methods
- 计算机ppt制作教案,教案幻灯片制作
- 训练赛20160406_华中OJ
- HDU 4069 Squiggly Sudoku DLX
- 【比赛回顾】广工2020程序设计初赛B-秋夜easy
- ES6之promise天气案例
- java 判断String是不是Long类型
- 压力传感+数字开关混合传感集成人机交互面板
- Linux下安装JDK教程,老爷爷看了都说会了!
- Qt-Qml-播放视频-失败版-只有声音没有图像
- 【WEB安全】PHP靶场实战分析——DVWA