全网整合营销服务商

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

免费咨询热线: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 +)  # 递归  # 回调  # 的是  # 可以拿到  # 判断是否  # 就能  # 才是  # 遍历  # 希望能  # 作为一个  # 会比  # 谢谢大家  # 较长  # 时应  # 需要注意  # 为有  # 计算出  # 应该用  # 不适宜  # 数据库文件 


相关文章: 广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  制作网站外包平台,自动化接单网站有哪些?  建站之星如何实现PC+手机+微信网站五合一建站?  湖北网站制作公司有哪些,湖北清能集团官网?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  建站主机核心功能解析:服务器选择与网站搭建流程指南  教程网站设计制作软件,怎么创建自己的一个网站?  网站制作公司排行榜,四大门户网站排名?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  兔展官网 在线制作,怎样制作微信请帖?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  盐城做公司网站,江苏电子版退休证办理流程?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  免费视频制作网站,更新又快又好的免费电影网站?  如何在IIS管理器中快速创建并配置网站?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  如何在香港服务器上快速搭建免备案网站?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何通过宝塔面板实现本地网站访问?  如何在阿里云虚拟服务器快速搭建网站?  网站微信制作软件,如何制作微信链接?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  营销式网站制作方案,销售哪个网站招聘效果最好?  php json中文编码为null的解决办法  建站之星免费模板:自助建站系统与智能响应式一键生成  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  如何自定义建站之星网站的导航菜单样式?  如何在万网主机上快速搭建网站?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  建站与域名管理如何高效结合?  建设网站制作价格,怎样建立自己的公司网站?  如何快速查询网址的建站时间与历史轨迹?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  如何用PHP工具快速搭建高效网站?  完全自定义免费建站平台:主题模板在线生成一站式服务  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  高端建站三要素:定制模板、企业官网与响应式设计优化  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  建站主机是否属于云主机类型?  已有域名如何免费搭建网站?  如何登录建站主机?访问步骤全解析  文字头像制作网站推荐软件,醒图能自动配文字吗?  香港服务器选型指南:免备案配置与高效建站方案解析 

您的项目需求

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