首页 > 系统 > iOS > 正文

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

2020-07-26 02:44:25
字体:
来源:转载
供稿:网友

 本文介绍了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{    }  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表