#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(100, 100, 100, 50);
[btn setTitle:@"清除緩存" forState:UIControlStateNormal];
btn.backgroundColor = [UIColor purpleColor];
[btn addTarget:self action:@selector(putBufferBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
//清除緩存按鈕的點(diǎn)擊事件
- (void)putBufferBtnClicked:(UIButton *)btn{
CGFloat size = [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject] + [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).lastObject] + [self folderSizeAtPath:NSTemporaryDirectory()];
NSString *message = size > 1 ? [NSString stringWithFormat:@"緩存%.0fM, 刪除緩存", size] : [NSString stringWithFormat:@"緩存%.0fK, 刪除緩存", size * 1024.0];
UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:message preferredStyle:(UIAlertControllerStyleAlert)];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"確定" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {
[self cleanCaches:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject];
[self cleanCaches:NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).lastObject];
[self cleanCaches:NSTemporaryDirectory()];
}];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:(UIAlertActionStyleCancel) handler:nil];
[alert addAction:action];
[alert addAction:cancel];
[self showDetailViewController:alert sender:nil];
}
// 計算目錄大小
- (CGFloat)folderSizeAtPath:(NSString *)path{
// 利用NSFileManager實現(xiàn)對文件的管理
NSFileManager *manager = [NSFileManager defaultManager];
CGFloat size = 0;
if ([manager fileExistsAtPath:path]) {
// 獲取該目錄下的文件,計算其大小
NSArray *childrenFile = [manager subpathsAtPath:path];
for (NSString *fileName in childrenFile) {
NSString *absolutePath = [path stringByAppendingPathComponent:fileName];
size += [manager attributesOfItemAtPath:absolutePath error:nil].fileSize;
}
// 將大小轉(zhuǎn)化為M
return size / 1024.0 / 1024.0;
}
return 0;
}
// 根據(jù)路徑刪除文件
- (void)cleanCaches:(NSString *)path{
// 利用NSFileManager實現(xiàn)對文件的管理
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:path]) {
// 獲取該路徑下面的文件名
NSArray *childrenFiles = [fileManager subpathsAtPath:path];
for (NSString *fileName in childrenFiles) {
// 拼接路徑
NSString *absolutePath = [path stringByAppendingPathComponent:fileName];
// 將文件刪除
[fileManager removeItemAtPath:absolutePath error:nil];
}
}
OC清除緩存代碼實例
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肠槽,“玉大人擎淤,你說我怎么就攤上這事〗障桑” “怎么了嘴拢?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長寂纪。 經(jīng)常有香客問我席吴,道長,這世上最難降的妖魔是什么弊攘? 我笑而不...
- 正文 為了忘掉前任抢腐,我火速辦了婚禮,結(jié)果婚禮上襟交,老公的妹妹穿的比我還像新娘迈倍。我一直安慰自己,他們只是感情好捣域,可當(dāng)我...
- 文/花漫 我一把揭開白布啼染。 她就那樣靜靜地躺著,像睡著了一般焕梅。 火紅的嫁衣襯著肌膚如雪迹鹅。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼义钉,長吁一口氣:“原來是場噩夢啊……” “哼昧绣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捶闸,我...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年醉锅,在試婚紗的時候發(fā)現(xiàn)自己被綠了兔簇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站坯认,受9級特大地震影響翻擒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜牛哺,卻給世界環(huán)境...
- 文/蒙蒙 一陋气、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧引润,春花似錦巩趁、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奴曙,卻和暖如春别凹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洽糟。 一陣腳步聲響...
- 正文 我出身青樓颁督,卻偏偏與公主長得像践啄,于是被迫代替她去往敵國和親浇雹。 傳聞我的和親對象是個殘疾皇子沉御,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- /**文 件 名:DataCleanManager.java*描述:主要功能有清除內(nèi)/外緩存,清除數(shù)據(jù)庫昭灵,清除sh...
- Objective-C 中核心處理字符串的類是 NSString 與 NSMutableString 烂完,這兩個類最...