移動應(yīng)用在處理網(wǎng)絡(luò)資源時苞轿,一般都會做離線緩存處理卦睹,其中以圖片緩存最為典型瘦锹。
今天介紹的離線緩存功能的實現(xiàn)籍嘹,主要分為緩存文件大小的獲取、刪除緩存文件的實現(xiàn)弯院。
路徑宏#define LHCCachesPath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]
計算文件大小-(float)fileSizeAtPath:(NSString*)path{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
if([fileManagerfileExistsAtPath:path]){
longlongsize=[fileManagerattributesOfItemAtPath:patherror:nil].fileSize;
returnsize/1024.0/1024.0;
}
return0;
}
計算目錄大小
- (CGFloat)floatWithPath:(NSString*)path{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
floatfolderSize;
if([fileManagerfileExistsAtPath:path]) {
NSArray*childerFiles = [fileManagersubpathsAtPath:path];
for(NSString*fileNameinchilderFiles) {
NSString*fullPath = [pathstringByAppendingPathComponent:fileName];
folderSize += [selffileSizeAtPath:fullPath];
}
}
returnfolderSize;
}
計算好文件目錄大小之后賦值給self.garbage
- (void)getFolderSizeBk
{
floatfolderSize = [self floatWithPath:LHCCachesPath];
self.garbage= [NSStringstringWithFormat:@"%.2fM",folderSize];
[self.tableViewreloadData];
}
清除緩存大小辱士,這個是我的寫的alert的點擊事件
- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex) {
NSString*path =LHCCachesPath;
NSFileManager*fileManager=[NSFileManagerdefaultManager];
if([fileManagerfileExistsAtPath:path]) {
NSArray*childerFiles=[fileManagersubpathsAtPath:path];
for(NSString*fileNameinchilderFiles) {
NSString*absolutePath=[pathstringByAppendingPathComponent:fileName];
[fileManagerremoveItemAtPath:absolutePatherror:nil];
}
}
[selfgetFolderSizeBk];
}
}
以上就是計算緩存和清除緩存的代碼了,附上幾張圖