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

iOS 沙盒目录结构介绍的更多相关文章

  1. iOS沙盒目录结构解析

    iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713     出于安全考虑,iOS系统的沙盒机制规定每个应 ...

  2. iOS 沙盒目录结构及正确使用

    前言:处于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如在用户授权情况下访问通讯录,相册等),这个规则展示了iOS系统的封闭性.在开发中常常需要数据存储的功 ...

  3. iOS App沙盒目录结构

    转自:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件( ...

  4. iOS--浅谈iOS沙盒目录

    原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文 ...

  5. iOS沙盒目录

    出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中 ...

  6. iOS沙盒目录简介、沙盒路径获取

    一.沙盒的意义 出于安全的考虑,iOS系统的沙盒机制规定每个应用只能访问当前沙盒目录下面的文件.但是对于一些用户级别的数据,考虑到很多软件都需要使用其中的数据,用户可以通过对当前的软件授权,让当前的应 ...

  7. iOS沙盒目录文件操作

    简介 沙盒(NSHomeDirectory())中总共有四个文件夹,documents.tmp.app.Library; 手动保存的文件在documents文件里; Nsuserdefaults保存的 ...

  8. iOS沙盒文件目录介绍

    1.APP沙盒目录结构简介 首先奉上苹果官方文档: https://developer.apple.com/library/archive/documentation/FileManagement/C ...

  9. IOS沙盒Files目录说明和常用操作

    Ios沙盒目录清单 1 Documents 用于存储用户生成的文件.其他数据及其他程序不能重新创建的文件,默认文件通过iCloud自动备份.如果不需要iCloud备份,则设置标记 NSURLIsExc ...

随机推荐

  1. 中文编码之GB2312,Big5,GBK简介

    汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5. 1.GB2312 又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆.新加坡等地也使用此编码.它是一个简化字的编码 ...

  2. Android-xUtils框架介绍(四)

    今天介绍xUtils的最后一个模块——HttpUtils,拖了那么久,终于要结束了.另外,码字不易,如果大家有什么疑问和见解,欢迎大家留言讨论.HttpUtils是解决日常工作过程中繁杂的上传下载文件 ...

  3. Python中的函数对象与闭包

    函数在Python中是第一类对象,可以当做参数传递给其他函数,放在数据结构中,以及作为函数的返回结果. 下面的例子为接受另外一个函数作为输入并调用它 #foo.py def callf(func): ...

  4. Angularjs checkbox的ng属性

    angularjs 默认给 input[checkbox] 元素定制了一些属性,如: <input type="checkbox" ng-mudel="name&q ...

  5. Zepto picLazyLoad Plugin,图片懒加载的Zepto插件

    嗯,学着国外人起名字Zepto picLazyLoad Plugin确实看起来高大上,其实js代码没几句,而且我每次写js都捉襟见肘,泪奔--- 图片懒加载有很多js插件,非常著名的属jQuery的L ...

  6. Azure HDInsight HBase DR解决方案

    Sun wei  Sat, Feb 28 2015 3:07 AM Apache HBase是目前非常流行的NoSQL数据库,通过HDFS+Zookeep+Master+Region Server的架 ...

  7. 声明顺序 (Bootstrap 编码规范)

    相关的属性声明应当归为一组,并按照下面的顺序排列: Positioning Box model Typographic Visual 由于定位(positioning)可以从正常的文档流中移除元素,并 ...

  8. 在ubuntu on windows 上安装jekyll

    已知问题 安装ruby之后,重新启动ubuntu on windows,输入ruby命令,提示找不到. 发现的解决办法 执行下面命令 source /home/xxxx/.rvm/scripts/rv ...

  9. 【译】 AWK教程指南 附录E-正则表达式

    为什么要使用正则表达式 UNIX 中提供了许多 指令 和 tools,它们具有在文件中 查找(Search)字串或替换(Replace)字串 的功能.像 grep, vi , sed, awk,... ...

  10. 【译】 AWK教程指南 附录A-Patterns

    awk 通过判断 Pattern 的值来决定是否执行其后所对应的Actions.这里列出几种常见的Pattern: A.1 BEGIN BEGIN 为 awk 的保留字,是一种特殊的 Pattern. ...