iOS沙盒机制的基本操作总结

时间:2022-07-24 14:44:32

每个ios程序都有自己的沙盒(sandBox),ios8之后提供沙盒部分开放

我们可以访问沙盒下的文件夹

文件夹包括:

1,documents:保存应用运行时生成的需要持久化的数据

2.tem:保存临时数据,系统重新启动自动消失

3.library:存储的程序默认的设置和其他信息

4.library/caches:保存临时文件

5.library/Preferences:保存偏好设置配置信息,sqlite数据

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

//获取根目录

NSString *dir=NSHomeDirectory();

NSLog(@"%@"dir);//MAC下为:/users/tang,ios下不是这个

//documents 路径

//第一个参数:要获取的沙盒文件夹名称

//第二个参数://NSUserDomainMask = 1,//用户主目录中 NSLocalDomainMask = 2,//当前机器中 NSNetworkDomainMask = 4,//网络中可见的主机 NSSystemDomainMask = 8,//系统目录,不可修改(/System) NSAllDomainsMask = 0x0ffff,//全部

//第三个参数:YES/NO 是否获取全路径 YES

NSArray* arr=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES);

NSLog(@"%@",[arr objectAtIndex:0]);

//caches路径

arr=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,1, YES);

NSLog(@"%@",[arr objectAtIndex:0]);

//library路径

arr=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, 1, YES);

NSLog(@"%@",[arr objectAtIndex:0]);

//tem路径

NSString *tem=NSTemporaryDirectory();

//应用,创建文件:

//library路径下的Preferences文件夹不能得到不能访问,只有拼接字符串

arr=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, 1, YES);

NSLog(@"%@",[arr objectAtIndex:0]);

NSString *path1= [[arr objectAtIndex:0] stringByAppendingPathExtension:@"Preferences/1.txt"];

NSString *data=@"写入文件,记录数据";

[data writeToFile:path1 atomically:YES encoding:NSUTF8StringEncoding error:nil];

}

return 0;

}