美文网首页
iOS沙盒文件目录介绍

iOS沙盒文件目录介绍

作者: iOS_tree | 来源:发表于2018-12-19 17:11 被阅读0次

1、APP沙盒目录结构简介

首先奉上苹果官方文档:
https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html
在iOS系统的安全机制,每个APP都有自己的文件目录,且只能访问自己的文件目录。该机制被称为沙盒机制。
沙盒文件结构如下:

官方沙盒结构图
最上面的bundle container目录为APP程序的安装目录,在安装后为不可修改状态。
中间的data container目录为APP数据存储目录,保存APP运行时需要的数据。
最下面的iCloud container目录为云存储目录,当APP需要iCloud云存储时可以进行访问。

2、data container目录介绍

开发中最常用到的是data container目录,系统在安装APP时就为用户创建了几个固定的目录供编程人员使用。初始化时的目录结构如下:


data container初始化目录结构
※Documents

保存用户创建的文档文件的目录,用户可以通过文件分享分享该目录下的文件。在iTunes和iCloud备份时会备份该目录。建议保存你希望用户看得见的文件。

※Library

苹果不建议在该目录下保存任何用户相关数据,而是保存APP运行需要的修改数据,当然用户可以根据自己的实际需要进行保存。
该目录下默认有两个子目录,为Caches、Preferences。根据文档还有另外两个系统预存放文件的子目录,分别是Application Support、Frameworks。用户还可以自己根据需要创建相应的目录。该目录下除Caches目录外,在iTunes和iCloud备份时会备份除Caches目录外的其他所有目录。四个目录的预定义如下:
Cache:建议保存数据缓存使用。在用户的磁盘空间已经使用完毕时有可能删除该目录下的文件,在APP使用期间不会删除,APP没有运行时系统有可能进行删除。需要持久化的数据建议不要保存在该目录下,以免系统强制删除。
Preferences:用户偏好存储目录,在使用NSUserDefaults或者CFPreferences接口保存的数据保存在该目录下,编程人员不需要对该目录进行管理。在iTunes和iCloud备份时会备份该目录。
Application Support:建议用来存储除用户数据相关以外的所有文件,如游戏的新关卡。在iTunes和iCloud备份时会备份该目录。
Frameworks:用来保存动态库的文件夹,在iOS系统中已不能使用,该目录可以忽略。

※tmp

苹果建议该目录用来保存临时使用的数据,编程人员应该在数据长时间内不使用时主动删除该目录下的文件,在APP没有运行期间,系统可能删除该目录下的文件。在iTunes和iCloud备份时不会备份该目录。

综上所述,我们保存文件可以保存在Application Support或者Documents目录之下,临时缓存文件则可根据需要保存到tmp和Cache目录下面,由于tmp和Cache目录有可能被系统删除,所有不能保存重要的文件数据。
除系统推荐的目录之外,用户也可以自己创建目录,也可以在推荐的目录下创建子目录进行管理。

3、目录路径获取

获取路径方法如下:

        //沙盒根目录
        NSString *homePath = NSHomeDirectory();
        //document目录
        NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
        //library目录
        NSString *libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject;
        //caches目录
        NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
        //application support目录
        NSString *applicationSupportPath = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES).firstObject;
        //preference目录
        NSString *preferencePath = NSSearchPathForDirectoriesInDomains(NSPreferencePanesDirectory, NSUserDomainMask, YES).firstObject;
        //tem目录
        NSString *temPath = NSTemporaryDirectory();

相关文章

  • 沙盒

    一、iOS沙盒机制介绍(1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 ...

  • iOS 文件操作

    iOS文件(沙盒目录,文件创建、移动、复制等) 目录获取获取沙盒的主目录路径: (NSString *)homeD...

  • iOS沙盒解析及操作

    介绍 概念:每个应用拥有自己的应用沙盒,所谓的应用沙盒就是文件系统目录。 沙盒文件目录 沙盒操作 获取应用根目录 ...

  • iOS沙盒文件目录介绍

    data container目录介绍: ※Documents保存用户创建的文档文件的目录,用户可以通过文件分享分享...

  • iOS沙盒文件目录介绍

    1、APP沙盒目录结构简介 首先奉上苹果官方文档:https://developer.apple.com/libr...

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

  • iOS 沙河路径

    沙河路径 每个iOS 应用都有自己的沙盒路径,应用沙盒就是文件系统目录应用沙盒文件目录:应用程序包、Documen...

  • 沙盒文件

    iOS 持久化沙盒目录结构:出于安全考虑,iOS 系统的沙盒机制规定每个应用都只能访问当前沙盒目录下的文件,也有例...

  • iOS沙盒目录结构解析

    iOS沙盒目录结构解析 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,...

  • iOS文件目录介绍

    沙盒文件目录 在iOS系统的安全机制,每个APP都有自己的文件目录,且只能访问自己的文件目录。该机制被称为沙盒机制...

网友评论

      本文标题:iOS沙盒文件目录介绍

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