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

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

IOS獲取緩存文件的大小并清除緩存文件的方法

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

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

但是,離線緩存會(huì)占用手機(jī)存儲(chǔ)空間,所以緩存清理功能基本成為資訊、購物、閱讀類app的標(biāo)配功能。

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

1. 獲取緩存文件的大小

-( float )readCacheSize{NSString *cachePath = [NSSearchPathForDirectoriesInDomains (NSCachesDirectory , NSUserDomainMask , YES) firstObject];return [ self folderSizeAtPath :cachePath];}

由于緩存文件存在沙箱中,我們可以通過NSFileManager API來實(shí)現(xiàn)對(duì)緩存文件大小的計(jì)算。

// 遍歷文件夾獲得文件夾大小,返回多少 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);}// 計(jì)算 單個(gè)文件的大小- ( 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];}

以上所述是小編給大家介紹的IOS獲取緩存文件的大小并清除緩存文件的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 文水县| 靖州| 沁源县| 祥云县| 南岸区| 安庆市| 高碑店市| 庆阳市| 恩平市| 江阴市| 九龙城区| 太仆寺旗| 阿尔山市| 德昌县| 洪湖市| 淮北市| 越西县| 满城县| 慈溪市| 加查县| 富锦市| 昌乐县| 尖扎县| 鸡东县| 平安县| 汉中市| 武宣县| 桑植县| 监利县| 浑源县| 云龙县| 武定县| 祥云县| 云梦县| 金乡县| 灵丘县| 托里县| 长春市| 若羌县| 施甸县| 扎鲁特旗|