zoukankan      html  css  js  c++  java
  • ios 清理缓存

    //拿到要清理的路径,其实就是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;
                }
            }
     1 #pragma mark UIAlertViewDelegate
     2 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
     3 {
     4     if (buttonIndex) {
     5         //点击了确定,遍历整个caches文件,将里面的缓存清空
     6         NSString *path = WNXCachesPath;
     7         NSFileManager *fileManager=[NSFileManager defaultManager];
     8         if ([fileManager fileExistsAtPath:path]) {
     9             NSArray *childerFiles=[fileManager subpathsAtPath:path];
    10             for (NSString *fileName in childerFiles) {
    11                 //如有需要,加入条件,过滤掉不想删除的文件
    12                 NSString *absolutePath=[path stringByAppendingPathComponent:fileName];
    13                 [fileManager removeItemAtPath:absolutePath error:nil];
    14             }
    15         }
    16     }
    17     
    18     self.alertView = nil;
    19 }
    20 
    21 //计算单个文件夹的大小
    22 -(float)fileSizeAtPath:(NSString *)path{
    23     
    24     NSFileManager *fileManager=[NSFileManager defaultManager];
    25     
    26     if([fileManager fileExistsAtPath:path]){
    27         
    28         long long size=[fileManager attributesOfItemAtPath:path error:nil].fileSize;
    29         
    30         return size/1024.0/1024.0;
    31     }
    32     return 0;
    33 }
  • 相关阅读:
    第28月第23天 lineFragmentPadding
    第28月第22天 iOS动态库
    第28月第21天 记事本Unicode 游戏编程中的人工智能技术
    第28月第11天 vim -b
    第28月第10天 iOS动态库
    第28月第8天
    第28月第7天 本地摄像头方向
    第28月第5天 uibutton交换方法
    第28月第4天 __bridge_transfer
    python __getattr__ __setattr__
  • 原文地址:https://www.cnblogs.com/songxing10000/p/4708290.html
Copyright © 2011-2022 走看看