swift清理缓存

func fileSizeOfCache()-> Int {

// 取出cache文件夹目录 缓存文件都在这个目录下

let cachePath =NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory,FileManager.SearchPathDomainMask.userDomainMask, true).first

//缓存目录路径

// 取出文件夹下所有文件数组

let fileArr = FileManager.default.subpaths(atPath: cachePath!)

//快速枚举出所有文件名 计算文件大小

var size = 0

for file in fileArr! {

// 把文件名拼接到路径中

let path = (cachePath! as NSString).appending("/\(file)")

// 取出文件属性

let floder = try! FileManager.default.attributesOfItem(atPath: path)

// 用元组取出文件大小属性

for (abc, bcd) in floder {

// 累加文件大小

if abc == FileAttributeKey.size {

size += (bcd as AnyObject).integerValue

}

}

}

let mm = size / 1024 / 1024

return mm

}

func clearCache() {

// 取出cache文件夹目录 缓存文件都在这个目录下

let cachePath =NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory,FileManager.SearchPathDomainMask.userDomainMask, true).first

// 取出文件夹下所有文件数组

let fileArr = FileManager.default.subpaths(atPath: cachePath!)

// 遍历删除

for file in fileArr! {

let path = (cachePath! as NSString).appending("/\(file)")

if FileManager.default.fileExists(atPath: path) {

do {

try FileManager.default.removeItem(atPath: path)

} catch {

}

}

}

}

时间: 2024-11-14 11:54:06

swift清理缓存的相关文章

iOS开发-清理缓存功能的实现

移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage. 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯.购物.阅读类app的标配功能. 今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取.删除缓存文件的实现. 获取缓存文件的大小 由于缓存文件存在沙箱中,我们可以通过NSFileManager API来实现对缓存文件大小的计算. 计算单个文件大小 +(float)fileSizeAtPath:(NSStrin

0122 ---清理缓存

IOS清理缓存的几种方法,有需要的朋友可以参考下. - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAtPath:filePath error:nil] fileSize]; } r

CentOS,清理缓存(drop_caches)

读写文件时,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这就是Cache Memory(缓存内存).即使程序运行结束后,Cache Memory也不会自动释放.这就会导致程序频繁读写文件后,可用物理内存会很少.其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以不必担心没有内存可用.如果你希望手动去释放Cache Memory(缓存内存)的话也是有办法的. cat /proc/sys/vm/drop_caches0 //默认是0:1-清空页缓存:2

CVS清理缓存

通过在 <script type="text/javascript" src="/MapTest/gis/dwgis.js?0.0.1"></script> 加上版本号,来实现清理缓存.

iOS清理缓存的几种方法

iOS清理缓存的几种方法,有需要的朋友可以参考下: 1.计算文件大小: - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAtPath:filePath error:nil] file

iOS 清理缓存功能实现第一种方法

1 添加一个提示框效果导入第三方MBProgressHUD #import "MBProgressHUD+MJ.h" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <br><br>/**  *  清理缓存第一种方法  */ -(void)clearCache { dispatch_async(                dispatch_get_global_queue(DISP

Session脏检查及清理缓存机制

今天看hibernate书,看到"理解Session的缓存"这一张脏检查及清理缓存的机制后,突然明白程序中session并非一定要执行update()方法.没有执行update()方法,对象仍会与数据库进行数据交互. Session脏检查及清理缓存机制: Session缓存中对象的属性每次改变时,Session不会立即清理缓存及执行Update SQL,而是会在特定时间清理缓存(执行相应的sql),提交事务. 清理缓存时,会相应的改变对象的状态. Java对象在内存中有四个状态:临时状

计算缓存大小和清理缓存

第一步:创建工具类-BDFileManagerTool (1).h的代码 @interface BDFileManagerTool : NSFileManager /** 计算单个文件大小*/ + (float)fileSizeAtPath:(NSString *)path; /** 计算目录大小 */ +(float)folderSizeAtPath:(NSString *)path; /** 清除缓存*/ +(void)clearCache:(NSString *)path; @end (2

ios 计算缓存大小并清理缓存

SDWebImage.WebView产生的缓存 1.计算缓存大小 //SDWebImage缓存大小  UILabel *cleanDetailText = [[UILabel alloc]init]; unsigned long iLength = [[SDImageCache sharedImageCache]getSize]/1024.0; if(iLength > 1024.0) { iLength = iLength/1024.0; NSString *sLength = [NSStri