沙盒目录解析

作者: LOVE婷 | 来源:发表于2017-08-29 11:00 被阅读0次

    简介:

    每个ios的应用程序都会有自己的沙盒,这个沙盒就是文件目录。

    特点:

               1.每个应用程序的活动范围都限定在自己的沙盒里

               2.不能随意跨越自己的沙盒去访问别的应用程序沙盒中的内容

              (iOS8已经部分开放访问extension)

               3.在访问别人沙盒内的数据时需要访问权限。

    好处:APP之间不能相互通,唯独可以通过URL Scheme可以通信, 比较安全!沙盒本身就是

    一个独立,安全,封闭的空间!

    下面来看下一个App的沙盒目录:

    很明显,目录分为四大部分,下面来一一说明一下:

    1. Documents 目录

    您应该将所有的应用程序数据文件写入到这个目录下。

    这个目录用于存储用户数据或其它应该定期备份的信息。

    保存由应用程序产生的文件或者数据,例如:涂鸦程序生成的图片,游戏关卡记录

    iCloud会自动备份Document中的所有文件。

    2. Library 目录: 子目录(Caches 和 Preferences)

    Preferences目录: 用来存储偏好设置文件, 通过[NSUserDefaults standarDefaults]来直接操作

    Caches目录: 用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息

    缓存,保存下载的文件资源等,以供后续使用

    PS: 缓存的资源文件不会自动删除,所以想要删除,需要有清除缓存的功能!

    3. tmp 目录: 用于存放临时文件(数据), 保存应用再次启动时不需要的数据。

    临时文件夹里面的文件,由系统回收, 如磁盘内存不足,重启手机,应用进程杀掉,都会清除临时文件,程序员不用手动管理临时文件的!

    常用获取文件目录的方法:

    1. 获取根目录:

    //获取沙盒根目录路径

    NSString *homeDir = NSHomeDirectory();

    2. 获取Documents目录

    //获取Documents目录路径

    //使用 NSSearchPathForDirectoriesInDomains 只能定位Caches目录和Documents目录

    NSString*path =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

    3. 获取Caches目录路径的方法

    //获取Caches目录路径

    NSString *dir =[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastobject];

    4. 获取tmp目录

    //获取tmp目录路径

    NSString *tmpDir = NSTemporaryDirectory();

    相关文章

      网友评论

        本文标题:沙盒目录解析

        本文链接:https://www.haomeiwen.com/subject/ozqodxtx.html