怎么打开ipad 设备应用沙盒的目录结构目录

主题 : ipad真机写文件到沙盒Document失败
级别: 新手上路
可可豆: 92 CB
威望: 92 点
在线时间: 7(时)
发自: Web Page
ipad真机写文件到沙盒Document失败&&&
技术问题发到问答:我知道,我仍旧要在论坛继续发布问题
一个文件,模拟器上可以写入沙盒的document,但是在ipad真机写这个文件到沙盒Document失败,点击save按钮以后就再没有反应了,已经用以下代码获得了写入权限:NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);&&&&&&NSString *docDir = [paths objectAtIndex:0];&&&&&&if (!docDir) {&&&&&&&&&&NSLog(@&Documents 目录未找到&);&&&&&&&&&&&&&&}&&&&&&NSArray *array = [[NSArray alloc] initWithObjects:@&内容&,@&content&,nil];&&&&&&NSString *filePath = [docDir stringByAppendingPathComponent:@&testFile.txt&];&&&&&&[array writeToFile:filePath atomically:YES];&&谁知道是咋回事吗?
级别: 侠客
可可豆: 334 CB
威望: 273 点
在线时间: 331(时)
发自: Web Page
要么输出Documents 目录未找到,要么保存了文件~~其他还会有什么反应?
级别: 新手上路
可可豆: 92 CB
威望: 92 点
在线时间: 7(时)
发自: Web Page
Document目录是app自动有的目录,所以是有的,也能找到。点击save按钮以后,那按钮就一直是按下的状态,永远弹不起来了。
可可豆: 24887 CB
威望: 25988 点
在线时间: 3380(时)
发自: Web Page
貌似你的代码没啥大问题。btn起不来的话,是程序挂了?
一直在努力,一直都觉得努力得还不够~~
级别: 新手上路
可可豆: 92 CB
威望: 92 点
在线时间: 7(时)
发自: Web Page
谢谢回复,code应该是没错,但是我的ipad是越狱的,我也试着自建了数字签名,但是每次部署app到ipad都会出现以下这个错误:Could not launch &MyApp&failed to get task for process xxx虽然有这个错误,但是实际上app可以部署到ipad上,大多数情况可以正常运行会不会跟越狱不完全有关系?比如没有写的权限??引用 引用第3楼wode211于 20:35发表的&&:貌似你的代码没啥大问题。btn起不来的话,是程序挂了?
级别: 新手上路
可可豆: 92 CB
威望: 92 点
在线时间: 7(时)
发自: Web Page
已经解决了,上面的code没有问题,是其他地方的code引起的。谢谢大家帮忙。
级别: 侠客
UID: 167513
可可豆: 166 CB
威望: 168 点
在线时间: 97(时)
发自: Web Page
&&&&&&&&&&&&&&&&&&
关注本帖(如果有新回复会站内信通知您)
iPhone5的分辨率? 正确答案:
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版相关热词搜索:
延伸阅读:每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录,如下图所示(假设应用的名称叫network)模拟器应用沙盒的根路径在: (apple是用户名, 7.1是模拟器版本)/Users/apple/Library/Application Support/iPhone Simulator/7.1/Applications应用程序包:(上图中的network)包含了所有的资源文件和可执行文件Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据Library/Preference:保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录应用沙盒目录的常见获取方式:沙盒根目录:NSString *home =NSHomeDirectory();Documents:(2种方式)利用沙盒根目录拼接”Documents”字符串NSString *home =NSHomeDirectory();NSString *documents = [homestringByAppendingPathComponent:@&Documents&];// 不建议采用,因为新版本的操作系统可能会修改目录名利用NSSearchPathForDirectoriesInDomains函数// NSUserDomainMask 代表从用户文件夹下找// YES 代表展开路径中的波浪字符“~”NSArray *array =& NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);// 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素NSString *documents = [array objectAtIndex:0];tmp:NSString *tmp =NSTemporaryDirectory();Library/Caches:(跟Documents类似的2种方法)利用沙盒根目录拼接”Caches”字符串利用NSSearchPathForDirectoriesInDomains函数(将函数的第2个参数改为:NSCachesDirectory即可)Library/Preference:通过NSUserDefaults类存取该目录下的设置信息iOS沙盒目录结构解析 (转)
转自:http://blog.csdn.net/wzzvictory/article/details/
出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致。
一、沙盒中几个主要的目录
每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档):
每个应用的沙盒目录都是相似的,主要包含图中所示的4个目录:
1、MyApp.app
①存放内容:该目录包含了应用程序本身的数据,包括资源文件和可执行文件等。程序启动以后,会根据需要从该目录中动态加载代码或资源到内存,这里用到了lazy loading的思想。
②整个目录是只读的:为了防止被篡改,应用在安装的时候会将该目录签名。非越狱情况下,该目录中内容是无法更改的;在越狱设备上如果更改了目录内容,对应的签名就会被改变,这种情况下苹果官网描述的后果是应用程序将无法启动,我没实践过。
③是否会被iTunes同步:否
2、Documents
①存放内容:我们可以将应用程序的数据文件保存在该目录下。不过这些数据类型仅限于不可再生的数据,可再生的数据文件应该存放在Library/Cache目录下。
②是否会被iTunes同步:是
3、Documents/Inbox
①存放内容:该目录用来保存由外部应用请求当前应用程序打开的文件。 比如我们的应用叫A,向系统注册了几种可打开的文件格式,B应用有一个A支持的格式的文件F,并且申请调用A打开F。由于F当前是在B应用的沙盒中,我们知道,沙盒机制是不允许A访问B沙盒中的文件,因此苹果的解决方案是讲F拷贝一份到A应用的&& Documents/Inbox目录下,再让A打开F。
②是否会被iTunes同步:是
4、Library
①存放内容:苹果建议用来存放默认设置或其它状态信息。
②是否会被iTunes同步:是,但是要除了Caches子目录外
5、Library/Caches
①存放内容:主要是缓存文件,用户使用过程中缓存都可以保存在这个目录中。前面说过,Documents目录用于保存不可再生的文件,那么这个目录就用于保存那些可再生的文件,比如网络请求的数据。鉴于此,应用程序通常还需要负责删除这些文件。
②是否会被iTunes同步:否。
6、Library/Preferences
①存放内容:应用程序的偏好设置文件。我们使用NSUserDefaults写的设置数据都会保存到该目录下的一个plist文件中,这就是所谓的写道plist中!
②是否会被iTunes同步:是
①存放内容:各种临时文件,保存应用再次启动时不需要的文件。而且,当应用不再需要这些文件时应该主动将其删除,因为该目录下的东西随时有可能被系统清理掉,目前已知的一种可能清理的原因是系统磁盘存储空间不足的时候。
②是否会被iTunes同步:否
二、获取主要目录路径的方式
1、沙盒目录
&&&&&&&&&&&&& NSLog(@"%@",NSHomeDirectory());
输出结果:
    /var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A&&
NSLog(@"%@",NSTemporaryDirectory());&&
输出结果:
/private/var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A/tmp/&&
3、Myapp.app
NSLog(@"%@",[[NSBundle&mainBundle]&bundlePath]);&&
输出结果:
/var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A/PhoneCall.app&&
4、Documents
NSArray&*paths&=&NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,&NSUserDomainMask,&YES);&&
NSString&*path&=&[paths&objectAtIndex:0];&&
NSLog(@"%@",path);&&
输出结果:
&&&&&&&&&& /var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A/Documents&&
这里用到的NSSearchPathForDirectoriesInDomains方法需要解释下,其声明如下:
FOUNDATION_EXPORT&NSArray&*NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory&directory,&NSSearchPathDomainMask&domainMask,&BOOL&expandTilde);&&
该方法用于返回指定范围内的指定名称的目录的路径集合。有三个参数:
NSSearchPathDirectory
类型的enum值,表明我们要搜索的目录名称,比如这里用NSDocumentDirectory表明我们要搜索的是Documents目录。如果我们将
其换成NSCachesDirectory就表示我们搜索的是Library/Caches目录。
domainMask
NSSearchPathDomainMask
类型的enum值,指定搜索范围,这里的NSUserDomainMask表示搜索的范围限制于当前应用的沙盒目录。还可以写成
NSLocalDomainMask(表示/Library)、NSNetworkDomainMask(表示/Network)等。
expandTilde
BOOL值,表示是否展开波浪线~。我们知道在iOS中~的全写形式是/User/userName,该值为YES即表示写成全写形式,为NO就表示直接写成&~&。
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
iOS沙盒目录结构解析 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/ 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢! 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件( ...
转自:http://blog.csdn.net/wzzvictory/article/details/
出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中几个主要的目录 每个沙盒下面都有相似 ...
内容转至:http://my.oschina.net/plumsoft/blog/56655 笔记做比较详细,就分享过来 在模拟器中运行iOS程序,都会为该程序创建一个沙盒(SandBox).首先声明,我用的系统是Max OS X 10.7.3,编译器是Xcode 4.3.2.想要找到沙盒目录,先运行Finder,然后在Finder的菜单栏找到前往-前往文件 ...
Ios沙盒目录清单 1 Documents
用于存储用户生成的文件.其他数据及其他程序不能重新创建的文件,默认文件通过iCloud自动备份.如果不需要iCloud备份,则设置标记 NSURLIsExcludedFromBackupKey,注明不备份
1.1 读取Documents目录代码 NSArray *paths = NSSearchPathFor ...
IOS沙盒机制(SandBox)
原文/taintain1984/archive//2969201.html IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属 ...
IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件等. (1).应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒. (2).应用程序间不能共享数据,沙盒里的文件不能被到其他应用程序文件夹中,也 ...
需要添加链接库
AVFoundation.framework, AudioToolbox.framework 添加头文件 #import &AVFoundation/AVFoundation.h& #include &AudioToolbox/AudioToolbox.h& 设置路径 #define MUSICSAVE(MUSICN ...
1.iOS沙盒机制
iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等.
1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合 ...

我要回帖

更多关于 沙盒的目录结构 的文章

 

随机推荐