zoukankan      html  css  js  c++  java
  • iOS 沙盒目录结构介绍

    iOS系统中,每个应用都有自己的沙盒,且应用只能访问其对应的沙盒目录下面的文件。当然,在用户授权的情况下,应用也可以访问其他目录下面的文件。比如,用户授权情况下,应用可以访问相册、通讯录。在开发中,经常会涉及到 iOS 沙盒目录,比如读写文件,归档解档等。

    一:沙盒的目录结构

    app的沙盒目录结构如下图:

    可知,沙盒目录下有三个文件夹:Documents、Library、Temp。其中,Library下面有两个文件夹,分别是 Preferences 和 Caches。

    二:每个目录下存放的文件

    1: Documents 目录:用来存储用户数据,应该将所有的应用程序数据文件写入到该目录下。

    2:Library 目录:(1)Preferences 目录:包含应用程序的偏好设置文件  (2)Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

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

    三:获取沙盒目录的方法

    获取沙盒目录路径可以通过 NSSearchPathForDirectoriesInDomains 方法,该方法有三个参数:

    1:directory NSSearchPathDirectory类型的enum值,表情要搜索的目录名称。

    2:domainMask NSSearchPathDomainMask类型的enum值,指定搜索范围。通常情况下是NSUserDomainMask,表示搜索的范围限制于当前应用的沙盒目录。

    3:expandTilde Bool值,表示返回的路径中是否展开~。如果是YES,表示展开,NO表示不展开。

    获取沙盒目录路径的代码:

    // 获取沙盒主目录路径
    NSString *homeDir = NSHomeDirectory();
    // 获取Documents目录路径
    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    // 获取Library的目录路径
    NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
    // 获取Caches目录路径
    NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
    // 获取tmp目录路径
    NSString *tmpDir =  NSTemporaryDirectory();

    第三个参数为YES时的示例路径:

    /var/mobile/Applications/DBAC1849-CF0A-435A-98FB-A7472C73EC42/Library/Caches/letuAllClassifyString.plist

    第三个参数为NO时的示例路径:

    ~/Library/Caches/letuAllClassifyString.plist
  • 相关阅读:
    A/B test模块使用以及配置
    Linux下的tar压缩解压缩命令详解
    php mysql转义特殊字符的函数(转)
    cas server + cas client 单点登录 原理介绍
    php二维码的生产以及下载
    shiro 获取已经登录的用户
    Sql 根据多条件查询重复的数据 MySQL删除重复数据
    js base64 转PDF并下载,js baser64转图片并下载
    当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)
    我的博客初始“话”
  • 原文地址:https://www.cnblogs.com/acBool/p/5467060.html
Copyright © 2011-2022 走看看