作者: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经典讲解之清除缓存文件相关推荐

  1. iOS经典讲解之使用instruments检测内存

    这里是原文 入门 为了节省大家的时间,提供一个演示的Demo给大家. 代码传送门 . 下载后解压然后用Xcode打开. 编译运行APP后 然后在搜索框内输入任意词汇,点击结果你会看到下面的结果 正如你 ...

  2. iOS经典讲解之获取沙盒文件路径写入和读取简单对象

    #import "RootViewController.h" @interface RootViewController () @end 实现文件: @implementation ...

  3. iOS经典讲解之判断App是否第一次启动

    作者:Loving_iOS 转载请标明出处:http://blog.csdn.net/loving_ios/article/details/50435840 方法一.在didFinishLaunchi ...

  4. iOS经典讲解之App上架(可供销售)后App Store搜索不到的解决办法

    App好不容易审核通过了,手动发布版本后,不断地在App Store搜索,就是搜不到,都是苹果的缓存机制惹的祸.急不急,一般情况下发布版本后几个小时或者更短时间App Store就会显示,但是有的时候 ...

  5. iOS经典讲解之UILabel居上居下显示

    作者:刘新林 转载请标明出处:http://blog.csdn.net/loving_ios/article/details/51381778 在日常开发中,经常遇到UILabel内容显示问题,因为U ...

  6. 李洪强iOS经典面试题144-数据存储

    李洪强iOS经典面试题144-数据存储   数据存储 sqlite中插入特殊字符的方法和接收到处理方法. 除'其他的都是在特殊字符前面加"/",而 ' -> '' .方法:k ...

  7. IOS NSUserDefaults 讲解 用法

    IOS NSUserDefaults 讲解 用法    NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults ...

  8. iPhone与iPad开发实战——iOS 经典应用剖析视频--观看地址

    iPhone与iPad开发实战--iOS 经典应用剖析视频 试看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo& ...

  9. 李洪强iOS经典面试题153- 补充

    李洪强iOS经典面试题153- 补充   补充 有空就来解决几个问题,已经懒癌晚期没救了... UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模 ...

最新文章

  1. Oracle命令(一):Oracle登录命令
  2. 成功解决pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)
  3. Linux下的inode记录
  4. tensorflow tf.train.ExponentialMovingAverage().variables_to_restore()函数 (用于加载模型时将影子变量直接映射到变量本身)
  5. 使用OpenCV在Python中进行人脸和眼睛检测
  6. jenkins 集成java搅拌_java-Jenkins中的集成测试
  7. 8月28日服务器例行维护公告,天涯明月刀8月28日更新了什么-8月28日更新内容介绍...
  8. 属性动画实现卫星菜单效果
  9. Docker安装Tomcat,安装elasticsearch+kibana
  10. Monocular Human Pose Estimation: A Survey of Deep Learning-based Methods
  11. 计算机ppt制作教案,教案幻灯片制作
  12. 训练赛20160406_华中OJ
  13. HDU 4069 Squiggly Sudoku DLX
  14. 【比赛回顾】广工2020程序设计初赛B-秋夜easy
  15. ES6之promise天气案例
  16. java 判断String是不是Long类型
  17. 压力传感+数字开关混合传感集成人机交互面板
  18. Linux下安装JDK教程,老爷爷看了都说会了!
  19. Qt-Qml-播放视频-失败版-只有声音没有图像
  20. 【WEB安全】PHP靶场实战分析——DVWA

热门文章

  1. 拜个早年,产品经理要不要懂技术
  2. CreateFileMapping/OpenFileMapping/MapViewOfFile
  3. WebRtc datachannel简介
  4. 式神咒缚战场玩法介绍 教你从战场获取得更多资源
  5. 视频直播软件的技术实现方式(jwplayer+ffmpeg+red5)
  6. java变量三要素_Java零基础快速入门|变量
  7. windows信息收集工具 -- winlog
  8. 初中化学实验室装备配置要求
  9. Linkedin Databus
  10. HTML基础的学习(1)(HBuilder快捷键)