亲宝软件园·资讯

展开

iOS清除缓存 iOS清除所有缓存的实例代码

ihs 人气:0
想了解iOS清除所有缓存的实例代码的相关内容吗,ihs在本文为您仔细讲解iOS清除缓存的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:iOS清除所有缓存,iOS,清除缓存,下面大家一起来学习吧。

 本文介绍了iOS清除所有缓存的实例代码,分享给大家,具体如下:

计算缓存

NSString *libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];
CGFloat fileSize=[self folderSizeAtPath:libPath];
- (float ) folderSizeAtPath:(NSString*) folderPath{
  NSFileManager* manager = [NSFileManager defaultManager];
  if (![manager fileExistsAtPath:folderPath]) return 0;
  NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
  NSString* fileName;
  long long folderSize = 0;
  while ((fileName = [childFilesEnumerator nextObject]) != nil){
    NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
    folderSize += [self fileSizeAtPath:fileAbsolutePath];
  }
  return folderSize/(1024.0*1024.0);
}
- (long long)fileSizeAtPath:(NSString*) filePath{
  NSFileManager* manager = [NSFileManager defaultManager];
  if ([manager fileExistsAtPath:filePath]){
    return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
  }
  return 0;
}

清除缓存

- (void)action:(id)sender
{
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
  NSString *path = [paths lastObject];

  NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:path];

  for (NSString *p in files) {
    NSError *error;
    NSString *Path = [path stringByAppendingPathComponent:p];
    if ([[NSFileManager defaultManager] fileExistsAtPath:Path]) {
      //清理缓存,保留Preference,里面含有NSUserDefaults保存的信息
      if (![Path containsString:@"Preferences"]) {
        [[NSFileManager defaultManager] removeItemAtPath:Path error:&error];
      }
    }else{

    }
  }
}

加载全部内容

相关教程
猜你喜欢
用户评论