IOS 沙盒机制

IOS中的沙盒机制(SandBox)是一种安全体系,出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问)

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

每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档):


应用沙盒一般包括以下几个文件目录:
1 应用程序包:包含所有资源文件和可执行文件 2 Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录 3 tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除,应用没有运行时,系统也可能会自动清理该目录下的文件,iTunes不会同步该目录,iPhone重启时该目录下的文件会丢失。 4 Libaray:存储程序的默认设置和其他状态信息,iTunes会自动备份该目录。 5 Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除,一般存放体积比较大,不是很重要的资源 6 Libaray/Preferences:保存应用的所有偏好设置,ios的Settings(设置)应用会在该目录中查找应用的设置信息,iTunes会自动备份该目录。
1、获取程序的Home目录
NSString *homeDirectory = NSHomeDirectory();  
NSLog(@"path:%@", homeDirectory);  

2、获取document目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"path:%@", path);   

3、获取Cache目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"%@", path);  

4、获取Library目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"%@", path);  

5、获取Tmp目录
NSString *tmpDir = NSTemporaryDirectory();  
 NSLog(@"%@", tmpDir); 

6、写入文件
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];

7, 写入文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *docDir = [paths objectAtIndex:0];  
    NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];  
    NSArray *array = [[NSArray alloc]initWithContentsOfFile:filePath];  
    NSLog(@"%@", array); 

 

posted @ 2016-02-14 16:10  菜鸟程序猿  阅读(1016)  评论(0编辑  收藏  举报