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); 
  • 相关阅读:
    [转帖]译文:如何使用SocketAsyncEventArgs类(How to use the SocketAsyncEventArgs class)
    如何建立一个“绑定友好的”usercontrol--wpf
    安卓学习(三)
    安卓学习(二)
    Android学习1
    用伪代码梳理springboot
    用伪代码梳理javaweb从零开始
    用伪代码梳理spring源码
    java如何写出简洁代码
    JAVA修复微信官方SDK支付XXE漏洞
  • 原文地址:https://www.cnblogs.com/joesen/p/5189193.html
Copyright © 2011-2022 走看看