iOS沙盒文件目录介绍

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目录有可能被系统删除,所有不能保存重要的文件数据。
除系统推荐的目录之外,用户也可以自己创建目录,也可以在推荐的目录下创建子目录进行管理。

目录路径获取:

        //沙盒根目录
        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沙盒文件目录介绍)