iOS UI 沙盒路径的获取及文件的简单存储

前几天有人问起iOS沙盒路径如何获取,时间太久没记起来,几天有空,回顾一下:

沙盒 : 其实对于每一个应用程序都有唯一的一个本地文件与之对应 名字由系统随机生成这个文件就是沙盒 

     沙盒机制 :沙河机制 其实就是对每一个应用程序 的资源起到一个保护作用当前 程序不允许访问其他程序的资源 其他程序也不允许 访问当前程序的的资源

     对于每一个应用程序的沙盒文件都包含以下文件

     1.documents 用来存储持久化数据文件 .如果我们想对一个文件进行长久存储就放在该文件夹下

     2.Libary 

     (a)Caches : 缓存文件,存放已经下载完成的视频音频 图片等一般我们会在该文件下 创建Images Audioes Videoes等文件 分别存放图片视频音频

     (b)Perfrences : 用于存放用户的偏好设置比如 用于判断程序是否是第一次启动的plist文件就放在该文件夹下的

     3.temp : 存放未下载完成的视频音频等 一般我们会将下载完成的视频音频在手动移动到Caches

     XXX.app :应用程序包 ,应用程序资源都来源于包,而包也是我们上传到appStore 以及用户从AppStore下载的文件对于包内的资源我们不能进行修改 更不能删除

     另外,对于以上文件都是由系统创建 不允许随意更改我们只能删改自己创建的文件;


代码如下

    NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
    NSString *applicationPath = [[NSBundle mainBundle] resourcePath];

进而了解一下文件的简单存储:

写入一段字符串:helloWorld!

    NSString *str1 = @"helloWorld";
    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"test.TXT"];
    [str1 writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
保存数组做plist文件

    NSString *str2 = str1;
    //创建一个数组
    NSArray *arr = @[str1,str2];
    
    //拼接文件路径
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"arr.plist"];
    //写入
    [arr writeToFile:filePath atomically:YES];

保存字典为xml

    NSDictionary *dic = @{@"t1":str1 ,@"t2":str2};
    //文件拼接
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"dic.xml"];
    [dic writeToFile:filePath atomically:YES];

保存data

    NSData *data = [str1 dataUsingEncoding:NSUTF8StringEncoding];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"data.data"];
    [data writeToFile:filePath atomically:YES];

本地文件读取(txt文件为例)

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"f1" ofType:@".txt"];
    
    NSString *str = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];








发布了36 篇原创文章 · 获赞 6 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章