iOS清除缓存(OC实现)

来源:互联网 发布:java web开发环境 编辑:程序博客网 时间:2024/06/11 03:36
//清除缓存按钮的点击事件- (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];        }    }}

0 0
原创粉丝点击