iOS 모든 캐 시 인 스 턴 스 코드 지우 기

2032 단어 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{

    }
  }
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기