首页 > 系统 > iOS > 正文

iOS 之清理缓存

2019-11-06 10:01:33
字体:
来源:转载
供稿:网友
//清除缓存按钮的点击事件- (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];        }    }转载自点击打开链接
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表