IOS 快取檔案的清除實現代碼_IOS

來源:互聯網
上載者:User

移動互連網 APP 的應用開發,必須要時刻注意使用者體驗,以免造成APP 或者手機及其他行動裝置的卡死情況,以下是對快取檔案的處理。

行動裝置 App在處理網路資源時,一般都會做離線緩衝處理,其中以圖片緩衝最為典型,其中很流行的離線緩衝架構為SDWebImage。

但是,離線緩衝會佔用手機儲存空間,所以緩衝清理功能基本成為資訊、購物、閱讀類app的標配功能。

今天介紹的離線緩衝功能的實現,主要分為快取檔案大小的擷取、清除快取檔案的實現。

1. 擷取快取檔案的大小

-( float )readCacheSize{  NSString *cachePath = [NSSearchPathForDirectoriesInDomains (NSCachesDirectory , NSUserDomainMask , YES) firstObject];  return [ self folderSizeAtPath :cachePath];} 由於快取檔案存在沙箱中,我們可以通過NSFileManager API來實現對快取檔案大小的計算。// 遍曆檔案夾獲得檔案夾大小,返回多少 M- ( 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;} 

2. 清除緩衝

- (void)clearFile{  NSString * cachePath = [NSSearchPathForDirectoriesInDomains (NSCachesDirectory , NSUserDomainMask , YES ) firstObject];  NSArray * files = [[NSFileManager defaultManager ] subpathsAtPath :cachePath];  //NSLog ( @"cachpath = %@" , cachePath);  for ( NSString * p in files) {        NSError * error = nil ;    //擷取檔案全路徑    NSString * fileAbsolutePath = [cachePath stringByAppendingPathComponent :p];        if ([[NSFileManager defaultManager ] fileExistsAtPath :fileAbsolutePath]) {      [[NSFileManager defaultManager ] removeItemAtPath :fileAbsolutePath error :&error];    }  }    //讀取緩衝大小  float cacheSize = [self readCacheSize] *1024;  self.cacheSize.text = [NSString stringWithFormat:@"%.2fKB",cacheSize];} 

 感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.