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

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

IOS 基本文件操作實例詳解

2020-07-26 02:46:35
字體:
供稿:網(wǎng)友

IOS 基本文件操作實例詳解

在iOS的App沙盒中,Documents和Library/Preferences都會被備份到iCloud,因此只適合放置一些記錄文件,例如plist、數(shù)據(jù)庫文件。緩存一般放置到Library/Caches,tmp文件夾會被系統(tǒng)隨機清除,不適宜防止數(shù)據(jù)。

【圖片緩存的清除】

在使用SDWebImage時,圖片被大量的緩存,有時需要獲取緩存的大小以及清除緩存。

要獲取緩存大小,使用SDImageCache單例的getSize方法拿到byte為單位的緩存大小,注意計算時按1K=1000計算。

拿到M為單位的文件大小的方法,如下:

double size = [[SDImageCache sharedImageCache] getSize] / 1000.0 / 1000.0; 

要清除緩存,調(diào)用clearDisk方法,分為有回調(diào)和無回調(diào)。

因為清除緩存的時間可能會比較長,因此應(yīng)該用指示器予以指示。

[[SDImageCache sharedImageCache] clearDiskOnCompletion:^{        // 清除完畢的處理。      }]; 

【文件夾大小計算】

使用NSFileManager可以拿到文件的屬性,如果文件是目錄,拿到的FileSize是沒有意義的,因為目錄的大小需要遞歸計算,不宜作為一個靜態(tài)屬性。因此只有文件的FileSize屬性才是文件的大小。

為了計算文件夾的大小,應(yīng)該遞歸內(nèi)部所有文件,還好蘋果官方集成了遞歸方法,通過遞歸可以拿到所有的目錄和所有的文件,只要利用FileManager的方法判斷是否是文件,如果是文件則拿到FileSize屬性累加,就能計算出文件夾的大小,如下:

需要注意的是遍歷出來的文件是以Caches為根目錄的,因此獲取屬性時應(yīng)該拼接出全路徑。

- (void)fileSize{    NSFileManager *manager = [NSFileManager defaultManager];      NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];      NSArray *files = [manager subpathsOfDirectoryAtPath:cachePath error:nil]; // 遞歸所有子路徑      NSInteger totalSize = 0;      for (NSString *filePath in files) {     NSString *path = [cachePath stringByAppendingPathComponent:filePath];     // 判斷是否為文件     BOOL isDir = NO;     [manager fileExistsAtPath:path isDirectory:&isDir];     if (!isDir) {       NSDictionary *attrs = [manager attributesOfItemAtPath:path error:nil];       totalSize += [attrs[NSFileSize] integerValue];     }   }      NSLog(@"%d",totalSize);    } 

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 和田市| 民乐县| 东平县| 泸西县| 柘荣县| 景德镇市| 时尚| 三原县| 梅河口市| 宣化县| 明溪县| 彰化市| 开化县| 郓城县| 东明县| 石渠县| 永平县| 蒙山县| 阜阳市| 长宁县| 龙海市| 泸定县| 洪洞县| 巴南区| 兰西县| 元朗区| 天祝| 依兰县| 公主岭市| 和顺县| 聊城市| 清镇市| 海安县| 铁岭市| 固安县| 赤壁市| 同仁县| 积石山| 临江市| 唐山市| 宝坻区|