iOS沙盒(sandbox)机制及获取沙盒的路径
2013-12-19 19:34
225 查看
一 每个ios的SDK都被限制在沙盒中,沙盒相当于一个仅主人可见的文件夹,苹果对沙盒有以下几点限制
1、每个应用程序都在自己的沙盒内运作,不可以访问其他应用程序的沙盒
2、沙盒间的数据是不可以共享的,沙盒中的文件不可以被复制到其他文件中,其他程序的文件也不可以被复制到沙盒中
3、苹果禁止读、写沙盒以外的文件,禁止将文件写进除沙盒以外的文件夹
4、沙盒目录里有三个文件夹documents、temp、labrary
documents一般把应用程序的数据文件存放在这里,用于存储用户数据及其他需要定期备份的数据
library底下有两个文件夹caches和preferences
caches存储应用程序再次启动所需要的信息
preferences包含用户对应用程序偏好设置的文件,但是不再这里进行设置
temp存放临时文件,即程序再次启动时不需要的数据
二 获取沙盒路径
(1)获取沙盒根目录的方法
1 用NSHomeDirectory获取
NSString *path = NSHomeDirectory();
NSLog(@“%@”,path);
2 用用户名获取
NSString *userName = NSUserName();
NSString *rootPath = NSHomeDirectoryForUser(userName);
NSLog(@“%@”,rootPath);
3 获取documents文件的路径
NSString *documentPath = [searchPathForDirectoriesInDomains[NSDocumentDirectory,NSUserDomainMask,YES]objectAtIndex:0];
documentPath = [documentPath stringAppendingPathComponent:@“dataPlist”];
4 获取tmp路径
NSString *tmpPath = NSTempororyDirectory();
NSLog(@“%@”,tmpPath);
5 获取caches路径
NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCacheDirectory,NSUserDomainMask,YES)
NSString *cachesDir = [cachesPath objectIndex:0];
1、每个应用程序都在自己的沙盒内运作,不可以访问其他应用程序的沙盒
2、沙盒间的数据是不可以共享的,沙盒中的文件不可以被复制到其他文件中,其他程序的文件也不可以被复制到沙盒中
3、苹果禁止读、写沙盒以外的文件,禁止将文件写进除沙盒以外的文件夹
4、沙盒目录里有三个文件夹documents、temp、labrary
documents一般把应用程序的数据文件存放在这里,用于存储用户数据及其他需要定期备份的数据
library底下有两个文件夹caches和preferences
caches存储应用程序再次启动所需要的信息
preferences包含用户对应用程序偏好设置的文件,但是不再这里进行设置
temp存放临时文件,即程序再次启动时不需要的数据
二 获取沙盒路径
(1)获取沙盒根目录的方法
1 用NSHomeDirectory获取
NSString *path = NSHomeDirectory();
NSLog(@“%@”,path);
2 用用户名获取
NSString *userName = NSUserName();
NSString *rootPath = NSHomeDirectoryForUser(userName);
NSLog(@“%@”,rootPath);
3 获取documents文件的路径
NSString *documentPath = [searchPathForDirectoriesInDomains[NSDocumentDirectory,NSUserDomainMask,YES]objectAtIndex:0];
documentPath = [documentPath stringAppendingPathComponent:@“dataPlist”];
4 获取tmp路径
NSString *tmpPath = NSTempororyDirectory();
NSLog(@“%@”,tmpPath);
5 获取caches路径
NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCacheDirectory,NSUserDomainMask,YES)
NSString *cachesDir = [cachesPath objectIndex:0];
相关文章推荐
- IOS内存管理retain,assign,copy,strong,weak
- iOS开发之AVAudioPlayer 音频播放
- 自定义的button在ios7下可见,在ios6下不可见的解决办法
- ios 工具
- xcode5 cpu %100
- IOS基础学习日志(四)手势与触摸
- “textField.placeholder属性中的文字设置后在ios7下在textfield的中间。在ios6下字会往上偏”解决办法
- ios 静态库使用方法
- nagios 安装
- iOS 获得指定文件夹下的指定格式文件
- IOS 多语言国际化 的配置和应用
- 关于iOS六大基本设计模式
- iOS7新特性
- IOS开发之内存管理--dealloc该写些什么
- iOS开发中那些高效常用的宏
- IOS学习之路 第一天
- 完美兼容iOS7自定义的AlertView
- SSL Pining Mode 设置iOS SSL 连接安全
- @synthesize obj=_0bj的意义详解
- 在iOS中创建及使用自签名SSL证书(下)