【iOS】获取缓存大小清除缓存的方法
2016-04-28 22:34
417 查看
这是获取缓存大小的方法,一般情况下,我们的iOS的APP的缓存都放在软件沙盒路径下的caches文件里,所以我们用系统的fileManager获得caches文件的大小就可以了///
#pragma mark -
下面两个获取文件大小的返回值都是数据类型,可以用NSString stringWithFormat转换成字符串
//单个文件的大小
- (long
long) fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManager
defaultManager];
if
([manager fileExistsAtPath:filePath]){
return
[[manager attributesOfItemAtPath:filePath
error:nil]
fileSize];
}
return
0;
}
//遍历文件夹获得文件夹大小,返回多少M
- (float
) folderSizeAtPath:(NSString*) folderPath{
NSFileManager* manager = [NSFileManager
defaultManager];
if
(![manager fileExistsAtPath: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);
}
#pragma mark -
清除缓存的方法
+(void)clearCache:(NSString
*)path{
NSFileManager
*fileManager=[NSFileManager
defaultManager];
if
([fileManager fileExistsAtPath:path]) {
NSArray
*childerFiles=[fileManager
subpathsAtPath:path];
for
(NSString
*fileName in
childerFiles) {
//如有需要,加入条件,过滤掉不想删除的文件
4000
NSString
*absolutePath=[path
stringByAppendingPathComponent:fileName];
[fileManager removeItemAtPath:absolutePath
error:nil];
}
}
//
这个是清除SDWebImage的缓存的,没有引用这个第三方类库不用写
[[SDImageCache sharedImageCache] cleanDisk];
}
#pragma mark -
下面两个获取文件大小的返回值都是数据类型,可以用NSString stringWithFormat转换成字符串
//单个文件的大小
- (long
long) fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManager
defaultManager];
if
([manager fileExistsAtPath:filePath]){
return
[[manager attributesOfItemAtPath:filePath
error:nil]
fileSize];
}
return
0;
}
//遍历文件夹获得文件夹大小,返回多少M
- (float
) folderSizeAtPath:(NSString*) folderPath{
NSFileManager* manager = [NSFileManager
defaultManager];
if
(![manager fileExistsAtPath: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);
}
#pragma mark -
清除缓存的方法
+(void)clearCache:(NSString
*)path{
NSFileManager
*fileManager=[NSFileManager
defaultManager];
if
([fileManager fileExistsAtPath:path]) {
NSArray
*childerFiles=[fileManager
subpathsAtPath:path];
for
(NSString
*fileName in
childerFiles) {
//如有需要,加入条件,过滤掉不想删除的文件
4000
NSString
*absolutePath=[path
stringByAppendingPathComponent:fileName];
[fileManager removeItemAtPath:absolutePath
error:nil];
}
}
//
这个是清除SDWebImage的缓存的,没有引用这个第三方类库不用写
[[SDImageCache sharedImageCache] cleanDisk];
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 浅析SQL Server中的执行计划缓存(上)
- Enterprise Library for .NET Framework 2.0缓存使用实例
- PowerShell中编程清空IE缓存方法
- PowerShell中使用.NET将程序集加入全局程序集缓存
- C#中缓存的基本用法总结
- Android实现图片异步加载并缓存到本地
- wap开发中如何有效的利用缓存减少消息的传送量
- PHP基于文件存储实现缓存的方法
- smarty缓存用法分析
- 引用全局程序集缓存内的程序集的方法
- asp Response.flush 实时显示进度
- C#实现清除IE浏览器缓存的方法
- ASP.NET缓存管理的几种方法