iOS沙盒目录

作者: 追沐 | 来源:发表于2017-11-29 09:53 被阅读1次

    一、沙盒目录

    iPhone的沙箱模型有四个文件夹,分别是documents,tmp,library,app。

    获取沙盒主目录

    NSString*homePaht = NSHomeDirectory();
    

    documents

    这是文档目录,有关App的数据文件缓存在这里。

    向documents中写入缓存时候,首先需要获取到文件目录,documents文件路径:

    NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
    

    这里documentsPath返回是个数组,但是取firstObject和lastObject应该是一样的,因为这个路径下只有一个文件夹。

    app

    AppName.app文件夹是应用程序的程序包目录,这个目录下的文件一般不修改。

    我们在开发阶段经常要用项目中某个资源文件等,就要获取AppName.app目录路径,然后拿到程序包对应的资源。

    NSString  *appPath = [[NSBundle mainBundle] bundlePath];
    

    library

    库目录,该目录下有有两级子目录,caches和preferences。

    caches目录

    缓存目录,用于存储应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。

    NSString  *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
    

    preferences目录

    包含应用程序的编号设置文件,存放NSUserDefaults保存的.plist文件。iTunes同步该应用时会同步该文件夹中的内容。

    NSUserDefaults  *userDefaults = [NSUserDefaults standardUserDefaults];
    //直接调用方法就能保存入偏好设置里面
    [userDefaults setObject:@"hello"forKey:@"hello"];
    [userDefaults synchronize];
    

    tmp

    这个目录用于存放临时文件,只程序终止时需要移除这些文件,当应用程序不再需要这些临时文件时,应该将其从这个目录中删除。

    NSString  *tmppath  = NSTemporaryDirectory();
    

    二、主要目录

    Documents(NSDocumentDirectory)
    用于写入应用相关数据文件的目录,在iOS中写入这里的文件能够与iTunes共享并访问,存储在这里的文件会自动备份到云端。

    Library/Caches(NSCachesDirectory)
    用于写入应用支持文件的目录,保存应用程序再次启动需要的信息。iTunes不会对这个目录的内容进行备份。

    tmp(use NSTemporaryDirectory())
    这个目录用于存放临时文件,只程序终止时需要移除这些文件,当应用程序不再需要这些临时文件时,应该将其从这个目录中删除。

    Library/Preferences
    这个目录包含应用程序的偏好设置文件,使用 NSUserDefault类进行偏好设置文件的创建、读取和修改。

    相关文章

      网友评论

        本文标题:iOS沙盒目录

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