首页 > 程序开发 > 移动开发 > IOS >

iOS沙盒目录结构解析

2014-01-15

iOS沙盒目录结构解析 作者:wangzz 原文地址:http: blog csdn net wzzvictory article details 18269713 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,

iOS沙盒目录结构解析 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!
出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致。

一、沙盒中几个主要的目录

每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档): vcTatOajrNXiwO/Tw7W9wctsYXp5IGxvYWRpbme1xMu8z+uhowqi2tX7uPbEv8K8ysfWu7bBtcQKzqrBy7fA1rmxu7TbuMSjrNOm08PU2rCy17C1xMqxuvK74b2ruMPEv8K8x6nD+6Gjt8fUvdP8x+m/9s/Co6y4w8S/wrzW0MTayN3Kx87et6i4/LjEtcSju9Ta1L3T/MnosbjJz8jnufu4/LjEwcvEv8K8xNrI3aOsttTTprXEx6nD+77Nu+Gxu7jEseSjrNXi1tbH6b/2z8LGu7n7udnN+MPoyva1xLrzufvKx9Om08OzzNDyvavO3reoxvS2r6OsztLDu8q1vPm5/aGjCqLbyse38bvhsbtpVHVuZXPNrLK9CrfxCjxoMz4yoaJEb2N1bWVudHM8L2gzPgqi2bTmt8XE2sjdCs7Sw8e/ydLUvavTptPDs8zQ8rXEyv2+3c7EvP6xo7Tm1Nq4w8S/wrzPwqGjsru5/dXi0KnK/b7dwODQzb32z97T2rK7v8nU2cn6tcTK/b7do6y/ydTZyfq1xMr9vt3OxLz+06a4w7Tmt8XU2kxpYnJhcnkvQ2FjaGXEv8K8z8Khowqi2srHt/G74bG7aVR1bmVzzayyvQrKxwo8aDM+M6GiRG9jdW1lbnRzL0luYm94PC9oMz4Kotm05rfFxNrI3Qq4w8S/wrzTw8C0saO05tPJzeKyv9Om08PH68fztbHHsNOm08OzzNDytPK/qrXEzsS8/qGjCrHIyOfO0sPHtcTTptPDvdBBo6zP8s+1zbPXorLhwcu8uNbWv8m08r+qtcTOxLz+JiMyNjY4NDvKvaOsQtOm08PT0NK7uPZB1qez1rXEJiMyNjY4NDvKvbXEzsS8/kajrLKix9LJ6sfrtffTw0G08r+qRqGj08nT2ka1scewysfU2kLTptPDtcTJs7rQ1tCjrM7Sw8fWqrXAo6zJs7rQu/rWxsrHsrvUytDtQbfDzspCybO60NbQtcTOxLz+o6zS8rTLxru5+7XEveK+9re9sLjKx72yRr+9sbTSu7fdtb1B06bTw7XERG9jdW1lbnRzL0luYm94xL/CvM/Co6zU2cjDQbTyv6pGoaMKotrKx7fxu+Gxu2lUdW5lc82ssr0KyscKPGgzPjShokxpYnJhcnk8L2gzPgqi2bTmt8XE2sjdCsa7ufu9qNLp08PAtLTmt8XErMjPyejWw7vyxuTL/Ne0zKzQxc+ioaMKotrKx7fxu+Gxu2lUdW5lc82ssr0KysejrLWrysfSqrP9wctDYWNoZXPX08S/wrzN4go8aDM+NaGiTGlicmFyeS9DYWNoZXM8L2gzPgqi2bTmt8XE2sjdCtb30qrKx7u6tObOxLz+o6zTw7unyrnTw7n9s8zW0Lu6tOa2vL/J0tSxo7Tm1NrV4rj2xL/CvNbQoaPHsMPmy7W5/aOsRG9jdW1lbnRzxL/CvNPD09qxo7Tmsru/ydTZyfq1xM7EvP6jrMTHw7TV4rj2xL/CvL7N08PT2rGjtObEx9Cpv8nU2cn6tcTOxLz+o6yxyMjnzfjC58frx/O1xMr9vt2ho7z409q0y6Os06bTw7PM0PLNqLOju7nQ6NKquLrU8Mm+s/3V4tCpzsS8/qGjCqLayse38bvhsbtpVHVuZXPNrLK9CrfxoaMKPGgzPjahokxpYnJhcnkvUHJlZmVyZW5jZXM8L2gzPgqi2bTmt8XE2sjdCtOm08OzzNDytcTGq7rDyejWw87EvP6ho87Sw8fKudPDTlNVc2VyRGVmYXVsdHPQtLXEyejWw8r9vt22vLvhsaO05rW9uMPEv8K8z8K1xNK7uPZwbGlzdM7EvP7W0KOs1eK+zcrHy/nOvbXE0LS1wHBsaXN01tCjoQqi2srHt/G74bG7aVR1bmVzzayyvQrKxwo8aDM+N6GidG1wPC9oMz4Kotm05rfFxNrI3Qq499bWwdnKsc7EvP6jrLGjtObTptPD1Nm0zsb0tq/KsbK70OjSqrXEzsS8/qGjtvjH0qOstbHTptPDsrvU2dDo0qrV4tCpzsS8/sqx06a4w9b3tq+9q8bkyb6z/aOs0vLOqrjDxL/CvM/CtcS2q873y+bKsdPQv8nE3LG7z7XNs8flwO219KOsxL/HsNLR1qq1xNK71ta/ycTcx+XA7bXE1K3S8srHz7XNs7TFxcy05rSiv9W85LK71+O1xMqxuvKhowqi2srHt/G74bG7aVR1bmVzzayyvQq38Qo8YnI+Cgo8aDE+tv6horvxyKHW99KqxL/CvMK3vra1xLe9yr08L2gxPgoKPGgzPjGhosmzutDEv8K8PC9oMz4KPHByZSBjbGFzcz0="brush:java;">NSLog(@"%@",NSHomeDirectory());输出结果:
/var/mobile/Applications/326640A7-6E27-4C63-BA5E-7391F203659A

2、tmp

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);
该方法用于返回指定范围内的指定名称的目录的路径集合。有三个参数: directory NSSearchPathDirectory类型的enum值,表明我们要搜索的目录名称,比如这里用NSDocumentDirectory表明我们要搜索的是Documents目录。如果我们将其换成NSCachesDirectory就表示我们搜索的是Library/Caches目录。 domainMask NSSearchPathDomainMask类型的enum值,指定搜索范围,这里的NSUserDomainMask表示搜索的范围限制于当前应用的沙盒目录。还可以写成NSLocalDomainMask(表示/Library)、NSNetworkDomainMask(表示/Network)等。 expandTilde BOOL值,表示是否展开波浪线~。我们知道在iOS中~的全写形式是/User/userName,该值为YES即表示写成全写形式,为NO就表示直接写成“~”。

三、参考文档

1、苹果官方文档

https://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010672-CH1-SW1

相关文章
最新文章
热点推荐