zoukankan      html  css  js  c++  java
  • iOS之清除缓存

      1 //清除缓存按钮的点击事件
      2 
      3 - (void)putBufferBtnClicked:(UIButton *)btn{
      4 
      5      CGFloat size = [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject] + [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).lastObject] + [self folderSizeAtPath:NSTemporaryDirectory()];
      6 
      7     
      8 
      9     NSString *message = size > 1 ? [NSString stringWithFormat:@"缓存%.2fM, 删除缓存", size] : [NSString stringWithFormat:@"缓存%.2fK, 删除缓存", size * 1024.0];
     10 
     11     
     12 
     13     UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:message preferredStyle:(UIAlertControllerStyleAlert)];
     14 
     15     
     16 
     17     UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {                [self cleanCaches];            }];
     18 
     19     
     20 
     21     UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:(UIAlertActionStyleCancel) handler:nil];
     22 
     23     [alert addAction:action];
     24 
     25     [alert addAction:cancel];
     26 
     27     [self showDetailViewController:alert sender:nil];
     28 
     29 }
     30 
     31  
     32 
     33 // 计算目录大小
     34 
     35 - (CGFloat)folderSizeAtPath:(NSString *)path{
     36 
     37     // 利用NSFileManager实现对文件的管理
     38 
     39     NSFileManager *manager = [NSFileManager defaultManager];
     40 
     41     CGFloat size = 0;
     42 
     43     if ([manager fileExistsAtPath:path]) {
     44 
     45         // 获取该目录下的文件,计算其大小
     46 
     47         NSArray *childrenFile = [manager subpathsAtPath:path];
     48 
     49         for (NSString *fileName in childrenFile) {
     50 
     51             NSString *absolutePath = [path stringByAppendingPathComponent:fileName];
     52 
     53             size += [manager attributesOfItemAtPath:absolutePath error:nil].fileSize;
     54 
     55         }
     56 
     57         // 将大小转化为M
     58 
     59         return size / 1024.0 / 1024.0;
     60 
     61     }
     62 
     63     return 0;
     64 
     65 }
     66 
     67 // 根据路径删除文件
     68 
     69 - (void)cleanCaches:(NSString *)path{
     70 
     71     // 利用NSFileManager实现对文件的管理
     72 
     73     NSFileManager *fileManager = [NSFileManager defaultManager];
     74 
     75     if ([fileManager fileExistsAtPath:path]) {
     76 
     77         // 获取该路径下面的文件名
     78 
     79         NSArray *childrenFiles = [fileManager subpathsAtPath:path];
     80 
     81         for (NSString *fileName in childrenFiles) {
     82 
     83             // 拼接路径
     84 
     85             NSString *absolutePath = [path stringByAppendingPathComponent:fileName];
     86 
     87             // 将文件删除
     88 
     89             [fileManager removeItemAtPath:absolutePath error:nil];
     90 
     91         }
     92 
     93     }
     94 
     95 }
     96 
     97 //计算沙盒中文件的大小并删除沙盒中文件的例子:
     98 
     99 - (void)cleanCaches{
    100 
    101     [self cleanCaches:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject];
    102 
    103     [self cleanCaches:NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject];
    104 
    105     [self cleanCaches:NSTemporaryDirectory()];
    106 
    107 }
    108 
    109  
  • 相关阅读:
    《SpringBoot揭秘 快速构建微服务体系》读后感(二)
    《SpringBoot揭秘 快速构建微服务体系》读后感(一)
    《Java多线程编程核心技术》读后感(十八)
    4.Go-结构体、结构体指针和方法
    3.GO-项目结构、包访问权限、闭包和值传递引用传递
    3.Flask-SQLAlchemy
    3.django Model
    2.深入类和对象
    2.shell编程-函数的高级用法
    mysql命令
  • 原文地址:https://www.cnblogs.com/rglmuselily/p/5166178.html
Copyright © 2011-2022 走看看