十一岁的加重songxing10000…… ------ 回到博主首页

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 }

 

posted @ 2015-08-06 16:21  songxing10000  阅读(256)  评论(0编辑  收藏  举报