iOS读取沙盒目录文件

iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒。它包含三个文件夹:

  1. Temp:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

  2. Documents: 苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录,如用户信息等永久性文件;

  3. Library: 它包含两个文件夹 caches 和 preferences
    Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除,如图片、视频缓存;
    Library/Preferences:包含应用程序的偏好设置文件;

//沙盒的根目录
NSString *homePath = NSHomeDirectory();

//沙盒Documents路径
NSString *docuPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

//沙盒中Library路径
NSString *libPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];

//沙盒中Library/Caches路径
NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];

//沙盒中Temp路径
NSString *tempPath = NSTemporaryDirectory();

举个栗子:

// 拿到当前版本号
NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"];

// 将当前版本号存进沙盒
[[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:@"CFBundleVersion"];
[[NSUserDefaults standardUserDefaults] synchronize]; //synchronize:同步 不可少这句!!!

// 从偏好设置里读取版本号
NSString *str = [[NSUserDefaults standardUserDefaults] objectForKey:currentVersion];
cell.detailTextLabel.text = str;
读取App版本号.png

另外,APPStore中有一条明确规定,你的APP中缓存文件只能保存在沙盒路径下Caches文件夹或Temp文件夹下,不然将会被拒。而Temp文件夹下内容将会在APP退出时自动清除,所以我们清除APP缓存主要是清除Caches文件夹下的内容。

如果你想了解相关清理缓存 iOS利用SDWebImage实现缓存的计算与清理,请移步:http://www.jianshu.com/p/e77add077477

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,801评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,389评论 30 472
  • 1、 沙盒概念基本介绍 iOS 应用程序只能在该 app 的文件系统中读取。这个默认的 app 文件系统就是我们说...
    Laughingg阅读 7,761评论 2 10
  • 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。每个...
    rockyMJ阅读 10,814评论 0 1
  • 每个iOS 应用都有自己的沙盒路径,应用沙盒就是文件系统目录,与其他应用的文件系统隔离,iOS应用不允许访问其他应...
    沃伦盖茨阅读 13,167评论 1 4

友情链接更多精彩内容