国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 红河县| 华阴市| 淮安市| 永清县| 敦化市| 普宁市| 无棣县| 彭水| 广汉市| 津市市| 右玉县| 平阴县| 峨眉山市| 辰溪县| 文登市| 兰考县| 长岛县| 麦盖提县| 东阿县| 清水河县| 疏勒县| 始兴县| 张掖市| 永新县| 河北省| 项城市| 亚东县| 敖汉旗| 无棣县| 漳浦县| 边坝县| 华亭县| 什邡市| 新乡县| 翁牛特旗| 城固县| 遵化市| 宁都县| 通江县| 绥中县| 定南县|