国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

IOS 緩存文件的清除實現(xiàn)代碼

2020-07-26 03:07:47
字體:
供稿:網(wǎng)友

移動互聯(lián)網(wǎng) APP 的應(yīng)用開發(fā),必須要時刻注意用戶體驗,以免造成APP 或者手機及其他移動設(shè)備的卡死情況,以下是對緩存文件的處理。

移動應(yīng)用在處理網(wǎng)絡(luò)資源時,一般都會做離線緩存處理,其中以圖片緩存最為典型,其中很流行的離線緩存框架為SDWebImage。

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

今天介紹的離線緩存功能的實現(xiàn),主要分為緩存文件大小的獲取、清除緩存文件的實現(xiàn)。

1. 獲取緩存文件的大小

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 墨竹工卡县| 安远县| 桓台县| 海盐县| 镇安县| 炎陵县| 常山县| 玛沁县| 平远县| 祁东县| 南阳市| 高州市| 五家渠市| 白朗县| 延川县| 河北省| 多伦县| 法库县| 朝阳区| 浪卡子县| 澄迈县| 宝清县| 白水县| 宁陵县| 南皮县| 贺州市| 陵川县| 荥阳市| 理塘县| 宜兰市| 长兴县| 阜平县| 额济纳旗| 闸北区| 涿州市| 株洲县| 吉隆县| 抚远县| 吉林市| 策勒县| 勃利县|