iOS 清除缓存

- (void)clearDisk

{

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

NSString *path = [paths lastObject];

NSString *str = [NSString stringWithFormat:@"缓存已清除:%.1fM",[self folderSizeAtPath:path]];

NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:path];

for (NSString *p in files) {

NSError *error;

NSString *Path = [path stringByAppendingPathComponent:p];

if ([[NSFileManager defaultManager] fileExistsAtPath:Path]) {

[[NSFileManager defaultManager] removeItemAtPath:Path error:&error];

}

}

[PFTool alertWithTitle:@"温馨提示" message:str button:0 done:nil];

}

- (float ) folderSizeAtPath:(NSString*) folderPath

{

NSFileManager *manager = [NSFileManager defaultManager];

if (![manager isExecutableFileAtPath: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;

}

时间: 2024-09-30 18:09:55

iOS 清除缓存的相关文章

iOS清除缓存

[objc] view plaincopy #pragma mark === 暂时不用清除缓存===== -(void)myClearCacheAction{ dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) , ^{ NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDoma

iOS清除缓存功能开发

在APP开发中,大量的图片或消息占用系统内存,造成一堆垃圾信息,所以开发清除缓存功能就显得必不可少了. 代码段1:获取文件的大小 - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAt

iOS开发日记14-NSFileManager(沙盒和清除缓存)

今天博主有一个文件管理的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像Android,没有SD卡概念,不能直接访问图像.视频等内容.iOS应用产生的内容,如图像.文件.缓存内容等都必须存储在自己的沙盒内.默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp.Library包含Caches.Preferences目录. Documents:苹果建议将程序创建产生的文件以及应用浏览产生的文件数

iOS开发—清除缓存

iOS开发—清除缓存 一.修改了系统的头文件 报错示例: fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSArray.h' has been modified si

iOS webview 清除缓存

使用iOS的UIWebview会自动进行缓存,我们在开发的时候要记得清除Cookie和缓存. _webView = nil; [self cleanCacheAndCookie]; 调用的方法代码如下: /**清除缓存和cookie*/ - (void)cleanCacheAndCookie{ //清除cookies NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookie

ios获取缓存文件的大小并清除缓存

移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage. 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯.购物.阅读类app的标配功能. 今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取.清除缓存文件的实现. 1. 获取缓存文件的大小-( float )readCacheSize{    NSString *cachePath = [NSSearchPathForDirectoriesInDomains (

iOS开发 -李洪强-清除缓存

// //  SetViewController.m //  dfhx // //  Created by dfhx_iMac_001 on 16/4/5. //  Copyright © 2016年 luoyun. All rights reserved. // #import "SetViewController.h" @interface SetViewController ()<UITableViewDelegate,UITableViewDataSource> @

如何知道缓存的大小,并且怎样清除缓存 -----ios

首先要了解怎么去拿到沙盒中的Cache文件路径 NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0]; 这个方法可以拿到沙盒中的Cache路径 缓存一般都会在这个文件夹中. // 获取文件夹尺寸 + (NSInteger)getDirectorySize:(NSString *)directoryPath {     // 获取文件管理者     NSFileManager *mgr =

iOS之清除缓存,ios缓存

//清除缓存按钮的点击事件 - (void)putBufferBtnClicked:(UIButton *)btn{ CGFloat size = [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject] + [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(