您的位置:首页 > 移动开发 > IOS开发

iOS中的沙盒及对沙盒内文件的常见操作

2016-01-09 14:56 267 查看
数据持久化:数据的永久保存
数据持久化的本质是讲数据保存到文件中.
iOS当中,文件保存到沙盒中

沙盒:

对每一个程序创建一个沙盒,给他的文件系统,还有资源以严格的限制.

每个程序只能在为改程序创建的文件系统中读取文件

沙盒的本质是文件夹,名字是统一分配的

每个应用程序在iOS系统下都放在了一个统一的文件夹内

1 . 沙盒的四个路径

1.1  打印该程序的根路径

    NSLog(@"%@",
NSHomeDirectory());

1.2   获取document文件夹路径

    NSString *docPath =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)[0];

1.3 获取cache文件夹路径

    NSString *cachePath =
NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask, YES)[0];

1.4 获取临时文件夹路径

    NSString *tempPath =
NSTemporaryDirectory();

2.1 . 简单对象的保存 (字符串,数组,字典)

   以字典为例

 // 
字典的保存

    NSDictionary *dict =
@{@"name":@"wang",

                          
@"sex":@"男",

                          
@"age":@"24"

                          
};

    NSString *dictPath = [docPath
stringByAppendingString:@"/个人信息.plist"];

    [dict writeToFile:dictPath
atomically:YES];

    NSDictionary *resuDict = [[NSDictionary
alloc] initWithContentsOfFile:dictPath];

    for (NSString *key
in resuDict) {

        NSLog(@"%@", resuDict[key]);

    }

2.2  复杂对象的保存

   

 // NSData的保存

    NSString *str =
@"天干物燥,小心火烛";

    NSData *data = [str
dataUsingEncoding:NSUTF8StringEncoding];

    NSString *dataPath = [docPath
stringByAppendingString:@"/data.data"];

    // data的写入

    [data writeToFile:dataPath
atomically:YES];

    NSLog(@"%@", dataPath);

    // data的读取

    NSData *resuData = [NSData
dataWithContentsOfFile:dataPath];

    NSString *s = [[NSString
alloc] initWithData:resuData
encoding:NSUTF8StringEncoding];

    NSLog(@"s   ------  %@", s);

   

3.1  文件管理器 --- 对沙盒内的文件和文件夹进行管理(添加,修改,删除,移动)

首先声明NSFileManager的manager属性,并将其初始化
 

_manager = [[NSFileManager
alloc]
init];

3.1.1 创建文件夹



3.1.2 向已有的文件夹内添加文件  (field.text是文件夹名,field.text是文件名)



3.1.3 移动,修改文件



3.1.4 删除文件



 

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息