沙盒:
对每一个程序创建一个沙盒,给他的文件系统,还有资源以严格的限制.
每个程序只能在为改程序创建的文件系统中读取文件
沙盒的本质是文件夹,名字是统一分配的
每个应用程序在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.2 向已有的文件夹内添加文件 (field.text是文件夹名,field.text是文件名)
3.1.3 移动,修改文件
3.1.4 删除文件