您的位置:首页 > 移动开发 > IOS开发

iOS之沙盒(Sandbox)机制

2016-02-26 18:00 633 查看

沙盒(Sandbox)

iOS的安全性结构可以在某种程序中保护应用程序的数据和系统免受安全漏洞的损害,iOS提供了一种机制使得每个应用程序都在自己的沙盒下。

1、沙盒规定了应用程序只能在为该应用创建的文件夹下读取文件,不能访问其他应用程序的沙盒内容。

2、应用程序间不能共享数据,沙盒里的文件不能被复制到其他应用程序中,也不能把其他应用程序文件夹中的文件复制到沙盒里。

3、苹果禁止读、写沙盒以外的文件,禁止应用程序将内容写到沙盒外的文件夹中。

4、沙盒目录下有三个文件夹:

Documents,一般把应用的数据文件存在这个文件夹里,用于存储用户数据或其他应该定期备份的信息。

Library,该文件夹下有两个子文件夹,Caches存储应用程序再次启动所需的信息,Preferences包含应用程序偏好设置文件(ps:不要在这里修改偏好设置)。

tmp,存放临时文件,即应用程序再次启动不需要的文件。


获取沙盒路径的方法有两种

1、用NSHomeDirectory获取

NSString* path = NSHomeDirectory();


2、通过用户名来获取

NSString* userName = NSUserName();//获取创建该应用程序的用户名
NSString* rootPath = NSHomeDirectoryForUser(userName);


获取Document路径

我们可以通过NSSearchPathDirectoriesInDomains()函数来获取沙盒路径

NSString* pathStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
pathStr = [pathStr stringByAppendingPathComponent:@"1.txt"];//在document目录下添加文件


获取tmp路径

NSString* tempPath = NSTemporaryDirectory();//获取tmp目录,因为是临时文件夹,程序退出后会清除


获取cache路径

NSString* cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  沙盒 ios 应用