iOS清楚緩存
来源:互联网 发布:东方网络股票最新消息 编辑:程序博客网 时间:2024/05/16 17:44
//清除缓存按钮的点击事件
- (void)putBufferBtnClicked:(UIButton *)btn{
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];
}
// 计算目录大小
- (CGFloat)folderSizeAtPath:(NSString *)path{
// 利用NSFileManager实现对文件的管理
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;
}
// 将大小转化为M
return 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()];
}
- iOS清楚緩存
- iOS 清楚WebView的缓存
- iOS WebView 清楚缓存和Cookie
- iOS之内存管理
- iOS之内存管理
- IOS之内存管理
- ios运存机制
- 在IOS上UC浏览器清楚缓存出现的BUG
- ios存数据的方式
- iOS开发之内存管理
- ios学习之内存管理
- iOS开发之内存管理
- iOS学习之内存管理
- iOS开发之内存管理
- MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文呢?我们来搞搞清楚
- iOS开发之内存缓存机制
- iOS文件存磁盘的设想
- iOS开发之内存缓存机制
- shiro 用ajax方式登录
- Hash算法_实战
- 去除canvas 画圆的毛边
- HDU(3333)树状数组+离线
- Camera
- iOS清楚緩存
- 使用Android studio添加assets目录
- 【Java】使用外部变量初始化子线程 下
- cocos2d-x 2.x CCScale9Sprite shader渲染变灰方法
- PHP学习(2)——运行环境搭建
- Android — GestureDetector.OnGestureListener 详解
- spring项目执行dao.update等更新操作失败
- [1020] : Encoding
- Android 中如何计算 App 的启动时间?