全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

IOS 基本文件操作实例详解

IOS 基本文件操作实例详解

在iOS的App沙盒中,Documents和Library/Preferences都会被备份到iCloud,因此只适合放置一些记录文件,例如plist、数据库文件。缓存一般放置到Library/Caches,tmp文件夹会被系统随机清除,不适宜防止数据。

【图片缓存的清除】

在使用SDWebImage时,图片被大量的缓存,有时需要获取缓存的大小以及清除缓存。

要获取缓存大小,使用SDImageCache单例的getSize方法拿到byte为单位的缓存大小,注意计算时按1K=1000计算。

拿到M为单位的文件大小的方法,如下:

double size = [[SDImageCache sharedImageCache] getSize] / 1000.0 / 1000.0; 

要清除缓存,调用clearDisk方法,分为有回调和无回调。

因为清除缓存的时间可能会比较长,因此应该用指示器予以指示。

[[SDImageCache sharedImageCache] clearDiskOnCompletion:^{ 
     
  // 清除完毕的处理。 
     
}]; 

【文件夹大小计算】

使用NSFileManager可以拿到文件的属性,如果文件是目录,拿到的FileSize是没有意义的,因为目录的大小需要递归计算,不宜作为一个静态属性。因此只有文件的FileSize属性才是文件的大小。

为了计算文件夹的大小,应该递归内部所有文件,还好苹果官方集成了递归方法,通过递归可以拿到所有的目录和所有的文件,只要利用FileManager的方法判断是否是文件,如果是文件则拿到FileSize属性累加,就能计算出文件夹的大小,如下:

需要注意的是遍历出来的文件是以Caches为根目录的,因此获取属性时应该拼接出全路径。

- (void)fileSize{ 
 
  NSFileManager *manager = [NSFileManager defaultManager]; 
   
  NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; 
   
  NSArray *files = [manager subpathsOfDirectoryAtPath:cachePath error:nil]; // 递归所有子路径 
   
  NSInteger totalSize = 0; 
   
  for (NSString *filePath in files) { 
    NSString *path = [cachePath stringByAppendingPathComponent:filePath]; 
    // 判断是否为文件 
    BOOL isDir = NO; 
    [manager fileExistsAtPath:path isDirectory:&isDir]; 
    if (!isDir) { 
      NSDictionary *attrs = [manager attributesOfItemAtPath:path error:nil]; 
      totalSize += [attrs[NSFileSize] integerValue]; 
    } 
  } 
   
  NSLog(@"%d",totalSize); 
   
} 


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# IOS  # 基本文件操作  # 文件操作  # 详解iOS学习笔记(十七)——文件操作(NSFileManager)  # Swift 共享文件操作小结(iOS 8 +)  # 递归  # 回调  # 的是  # 可以拿到  # 判断是否  # 就能  # 才是  # 遍历  # 希望能  # 作为一个  # 会比  # 谢谢大家  # 较长  # 时应  # 需要注意  # 为有  # 计算出  # 应该用  # 不适宜  # 数据库文件 


相关文章: 建站之星如何一键生成手机站?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  建站主机与虚拟主机有何区别?如何选择最优方案?  完全自定义免费建站平台:主题模板在线生成一站式服务  定制建站如何定义?其核心优势是什么?  定制建站价位费用解析与套餐推荐全攻略  大同网页,大同瑞慈医院官网?  在线教育网站制作平台,山西立德教育官网?  ,有什么在线背英语单词效率比较高的网站?  建站VPS选购需注意哪些关键参数?  建站之星如何实现网站加密操作?  制作企业网站建设方案,怎样建设一个公司网站?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何选择香港主机高效搭建外贸独立站?  如何选择PHP开源工具快速搭建网站?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  红河网站制作公司,红河事业单位身份证如何上传?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  建站主机与服务器功能差异如何区分?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  中山网站推广排名,中山信息港登录入口?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  免费视频制作网站,更新又快又好的免费电影网站?  电商网站制作公司有哪些,1688网是什么意思?  c# 在高并发场景下,委托和接口调用的性能对比  昆明网站制作哪家好,昆明公租房申请网上登录入口?  如何选择可靠的免备案建站服务器?  公司门户网站制作流程,华为官网怎么做?  如何在云虚拟主机上快速搭建个人网站?  宝塔新建站点报错如何解决?  如何有效防御Web建站篡改攻击?  如何在腾讯云服务器快速搭建个人网站?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何在香港免费服务器上快速搭建网站?  非常酷的网站设计制作软件,酷培ai教育官方网站?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  建站之星导航菜单设置与功能模块配置全攻略  如何挑选最适合建站的高性能VPS主机?  建站主机默认首页配置指南:核心功能与访问路径优化  简历在线制作网站免费,免费下载个人简历的网站是哪些?  高防服务器:AI智能防御DDoS攻击与数据安全保障  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  建站之星代理平台如何选择最佳方案?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  高防服务器租用如何选择配置与防御等级?  南宁网站建设制作定制,南宁网站建设可以定制吗?  建站之星24小时客服电话如何获取? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。