iOS 实现缓存清理


  1.   
  2. #pragma mark -检查缓存  
  3. - (void)clearCache{  
  4.       
  5.     NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];  
  6.     NSFileManager *fileManager=[NSFileManager defaultManager];  
  7.     float folderSize;  
  8.     if ([fileManager fileExistsAtPath:path]) {  
  9.         //拿到算有文件的数组  
  10.         NSArray *childerFiles = [fileManager subpathsAtPath:path];  
  11.         //拿到每个文件的名字,如有有不想清除的文件就在这里判断  
  12.         for (NSString *fileName in childerFiles) {  
  13.             //将路径拼接到一起  
  14.             NSString *fullPath = [path stringByAppendingPathComponent:fileName];  
  15.             folderSize += [self fileSizeAtPath:fullPath];  
  16.         }  
  17.           
  18.         self.alertView = [[UIAlertView alloc] initWithTitle:@"清理缓存" message:[NSString stringWithFormat:@"缓存大小为%.2fM,确定要清理缓存吗?", folderSize] delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil nil];  
  19.         [self.alertView show];  
  20.         self.alertView.delegate = self;  
  21.     }  
  22. }  
  23.   
  24. //计算单个文件夹的大小  
  25. -(float)fileSizeAtPath:(NSString *)path{  
  26.       
  27.     NSFileManager *fileManager=[NSFileManager defaultManager];  
  28.       
  29.     if([fileManager fileExistsAtPath:path]){  
  30.           
  31.         long long size=[fileManager attributesOfItemAtPath:path error:nil].fileSize;  
  32.           
  33.         return size/1024.0/1024.0;  
  34.     }  
  35.     return 0;  
  36. }  
  37.   
  38.   
  39. #pragma mark -弹框  
  40.   
  41. - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex  
  42. {  
  43.     if (buttonIndex) {  
  44.         //点击了确定,遍历整个caches文件,将里面的缓存清空  
  45.         NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];  
  46.         NSFileManager *fileManager=[NSFileManager defaultManager];  
  47.         if ([fileManager fileExistsAtPath:path]) {  
  48.             NSArray *childerFiles=[fileManager subpathsAtPath:path];  
  49.             for (NSString *fileName in childerFiles) {  
  50.                 //如有需要,加入条件,过滤掉不想删除的文件  
  51.                 NSString *absolutePath=[path stringByAppendingPathComponent:fileName];  
  52.                 [fileManager removeItemAtPath:absolutePath error:nil];  
  53.             }  
  54.         }  
  55.     }  
  56. }  

转载于:https://my.oschina.net/u/2564478/blog/667552

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值