ios 清理缓存
2015-08-06 16:21
211 查看
//拿到要清理的路径,其实就是caches的路径,一般像这种很多地方都会用到的地方真好搞成宏,不过现在苹果不提倡用宏了 //在swift中可以定义成全局的常量 //遍历caches,将内部的文件大小计算出来,点击确认删除的话直接删除全部文件,如果有不想清理的文件,可以在遍历文件时根据路径过滤掉 { NSString *path = WNXCachesPath; NSFileManager *fileManager=[NSFileManager defaultManager]; float folderSize; if ([fileManager fileExistsAtPath:path]) { //拿到算有文件的数组 NSArray *childerFiles = [fileManager subpathsAtPath:path]; //拿到每个文件的名字,如有有不想清除的文件就在这里判断 for (NSString *fileName in childerFiles) { //将路径拼接到一起 NSString *fullPath = [path stringByAppendingPathComponent:fileName]; folderSize += [self fileSizeAtPath:fullPath]; } self.alertView = [[UIAlertView alloc] initWithTitle:@"清理缓存" message:[NSString stringWithFormat:@"缓存大小为%.2fM,确定要清理缓存吗?", folderSize] delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil]; [self.alertView show]; self.alertView.delegate = self; } }
#pragma mark UIAlertViewDelegate - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex) { //点击了确定,遍历整个caches文件,将里面的缓存清空 NSString *path = WNXCachesPath; 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]; } } } self.alertView = nil; } //计算单个文件夹的大小 -(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; }
相关文章推荐
- OC之使用MD5加密字符串、NSData和文件的方法
- IOS学习之ios应用数据存储方式(偏好设置)
- IOS学习之ios应用数据存储方式(XML属性列表-plist)
- iOS设计模式之单例模式
- ios 打开图片库和相机选择图片界面修改为简体中文
- IOS内存管理--自动释放池的实现原理
- iOS 获取IP地址
- html5在IOS下自动播放音乐
- 显示ios设备信息的程序
- iOS项目的重命名方法完整图文教程
- iOS开发之保存图片
- IOS 动态隐藏状态栏
- 仿ios可上提下拉的ScrollView
- iOS第一课 设置页面入口
- iOS des加密
- 用CocoaPods做iOS程序的依赖管理
- iOS开发系列--并行开发其实很容易
- iOS开发系列--打造自己的“美图秀秀”
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
- iOS 手势添加(代码和storyboard)