zoukankan      html  css  js  c++  java
  • 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); 
  • 相关阅读:
    20145338 《信息安全系统设计基础》第9学习总结
    实验一《开发环境的熟悉》&实验二《固件设计》
    《信息安全系统设计基础》第八周学习总结
    20145338 《信息安全系统设计基础》第七周学习总结
    20145338《信息安全系统设计基础》第6周学习总结
    20145338 《信息安全系统设计基础》第5周学习总结
    《信息安全系统设计基础》第3周学习总结
    《信息安全系统设计基础》第2周学习总结
    《信息安全系统设计基础》第1周学习总结
    20145337 《信息安全系统设计基础》 第九周学习总结
  • 原文地址:https://www.cnblogs.com/joesen/p/5189193.html
Copyright © 2011-2022 走看看