iOSAPP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒。每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URLScheme。沙盒里面的文件可以是照片、声音文件、文本、属性列表等。

沙盒机制简介

沙盒简述:

1,每一个APP都有一个存储空间,就是沙盒。

2,APP之间不能相互通信。

3,沙盒根目录结构:Documents、Library、temp。

简述一下Documents、Library、temp的区别:

1,Documents:用于存储用户数据,iTunes备份和恢复的时候会包括此目录,所以,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下。

2,Library:包含两个子目录:Caches和Preferences。Caches用来存放用户需要换成的文件。Preferences是APP的偏好设置,可以通过NSUserDefaults来读取和设置。

3,tmp:用于存放临时文件,这个可以放一些当APP退出后不再需要的文件。

打开模拟器沙盒方法

方法一:前往文件夹打开

/Users/ligang/Library/Application Support/iPhone Simulator/

直接在Finder->前往->前往文件夹,输入上面的内容即可。记住将ligang换成你的电脑用户名。

方法二:通过Finder一步步查找

模拟器上的APP的沙盒实在用户目录下的资源库里面,但是资源库是隐藏文件夹。所以查看沙盒之前,现将隐藏文件夹显示出来。显示隐藏文件的命令:

defaults write com.apple.finder AppleShowAllFiles -bool true

用心的童鞋会发现,隐藏隐藏文件的命令:

defaults write com.apple.finder AppleShowAllFiles -bool false

如何获取Documents、Library、tmp的路径?

获取沙盒根目录

获取沙盒根目录,直接调用NSHomeDirectory():

//获取沙盒根目录

NSString*directory=NSHomeDirectory();

NSLog(@"directory:%@",directory);

控制台输出:

2017-05-10 09:23:57.708447+0800 VideoClip[408:70903] directory:/var/mobile/Containers/Data/Application/CC60BE19-540C-43BE-9F9C-293A2A630C9C

这个是真机的路径,大家有时间的话可以看看模拟器的根目录路径。

获取Documents路径

获取Documents路径如下:

//获取Documents路径

NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString*path=[pathsobjectAtIndex:0];

NSLog(@"path:%@",path);

控制台输出:

2017-05-10 09:23:57.708754+0800 VideoClip[408:70903] path:/var/mobile/Containers/Data/Application/Documents

获取Documents文件夹目录,第一个参数是说明获取Doucments文件夹目录,第二个参数说明是在当前应用沙盒中获取。

获取Library路径

//获取Library路径

NSArray*paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);

NSString*path=[pathsobjectAtIndex:0];

NSLog(@"path:%@",path);

控制台输出:

2017-05-10 09:23:57.708754+0800 VideoClip[408:70903] path:/var/mobile/Containers/Data/Application/Library

获取Caches路径

//获取Caches路径

NSArray*paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString*path=[pathsobjectAtIndex:0];

NSLog(@"path:%@",path);

控制台输出:

2017-05-10 09:23:57.708754+0800 VideoClip[408:70903] path:/var/mobile/Containers/Data/Application/Library/Caches

获取tmp路径

NSString*tmp=NSTemporaryDirectory();

NSLog(@"tmp:%@",tmp);

控制台输出:

2017-05-10 09:23:57.709190+0800 VideoClip[408:70903] tmp:/private/var/mobile/Containers/Data/Application/CC60BE19-540C-43BE-9F9C-293A2A630C9C/tmp/

以上是iOS开发中获取沙盒路径的方法。

iOS - 沙盒机制(SandBox)和获取沙盒路径的更多相关文章

  1. iOS之沙盒机制和如何获取沙盒路径

    iOS APP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒.每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URL Scheme.沙盒里面的文件可以是照片.声音文件. ...

  2. QF——iOS沙盒机制

    iOS沙盒机制: 什么是沙盒机制?  点击进入  点击进入 沙盒机制(SandBox)是一种安全体系,它规定了APP的所有文件数据都必须存储在这片区域.所有非代码文件的数据都保存在这片区域. 沙盒里有 ...

  3. iOS学习7:iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明(转)

    转:http://my.oschina.net/joanfen/blog/151145 一.iOS沙盒机制 iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下 ...

  4. iOS沙盒(sandbox)机制及获取沙盒路径

    一.每个iOS应用SDK都被限制在沙盒中,沙盒相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制. (1).应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒. (2).应 ...

  5. iOS沙盒(sandbox)机制及获取沙盒路径

    一. 每个iOS应用SDK都被限制在“沙盒”中,“沙盒”相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制. (1)应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒. ( ...

  6. IOS 学习之 iOS沙盒(sandbox) 介绍 沙盒机制 文件操作(一)

    1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. ...

  7. iOS 沙盒(sandbox)结构 使用 实例

    声明:该文档是经过自己查找网上的资料以及自己多年的经验后而总结出来的,希望对大家有所帮助,有什么不恰当支出还请大家多指点! iOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为 ...

  8. iOS 阶段学习第25天笔记(iOS沙盒机制介绍)

    iOS学习(OC语言)知识点整理 一.iOS沙盒机制介绍 1)概念: 每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问 其他应用的应用沙盒 ...

  9. iOS沙盒机制介绍,Block 的介绍

    一.iOS沙盒机制介绍 (转载) 1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问 其他应用的应用沙盒,但在ios8中已经开放访 ...

随机推荐

  1. numpy和Matplotlib篇---2

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 5.3 Python的科学计算包 - Numpy numpy(Numerical Python ...

  2. Spring中可以复用的工具类&特性记录

    Spring 里有用工具类: GenericTypeResolver 解析泛型类型.核心逻辑还是调用 ResolvableTypeResolvableType 解析泛型类型 BeanWrapper 利 ...

  3. R语言概述

    R是一个有着统计分析功能及强大作图功能的软件系统,是由Ross Ihaka和Robert Gentleman共同创立.它是属于GNU系统的一个自由.免费.源码开放的软件,同一时候也是一个用于统计计算和 ...

  4. Linq与Lambda

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button ...

  5. window.location.href

    WEB设置首页 <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-f ...

  6. ios开发之--解决“Could not insert new outlet connection”的问题。

    在Xcode中,我们能够在StoryBoard编辑界面或者是xib编辑界面中通过“Control键+拖拽“的方式将某个界面元素和相应的代码文件连接起来.在代码文件里创建outlet. 只是.假设你的运 ...

  7. Win7 在安装vs2010后向sql2008添加SQL_Server_Management详解

    VS2010自带sql server 2008,但自带的版本缺少SQL_Server_Management,解决如下: 安装的先决条件: 1.SQLManagementStudio_x86_CHS(h ...

  8. iOS开发-- 使用VVDocumenter-Xcode添加代码注释

    在开发Java代码过程中,我们只需在Eclipse中敲/**即可生成字段.方法对应的文档,简单便捷. 在Xcode如果想添加文档注释,需要花费很多时间,有没有简单.快速的方法搞定这一切? 在网上搜索了 ...

  9. U3D的控制

    做游戏少不了控制,但是一个成熟的游戏引擎,是不能简单仅仅获取键盘中或者遥感确定的按键来控制,要考虑到用户更改游戏按键的情况,当然也得考虑到不同设备的不通输入方式,比如U3D是可以运行在iphone上的 ...

  10. 对C#中几个循环语句的使用,请教

    今天是在云和数据学院学习的第四天,由于各种原因···今天自己预习的循环语句的用法以及写了几个程序,也遇到各种的问题了···纠结.由于还是在学习的很初初初级,所以好多简单的方法还是不知道怎么写出来,只得 ...