每个APP程序只能在自己创建的文件系统区域中读取文件,此区域称为沙盒。所有的非代码文件都存储在此区域。
模拟器沙盒目录
1. 前往文件夹:/Users/XX(用户)/Library/Developer/CoreSimulator/Devices/,如图1所示
图1
2.查看Devices文件夹中“device_set.plist”文件,找到具体的模拟器,如图2所示。
图2
3.进入到模拟器文件夹后,查看到文件结构如图3所示。
图3
文件夹/目录 | 说明 | iTunes备份和恢复 | 重启 |
Documents | 一般用于存放应用中建立的文件,如数据库 | 包含 | 保存 |
Library | 存储应用的默认设置及状态信息 | 包含 | 保存 |
Library/cache | 用来存放缓存文件 | 不包含 | 保存 |
Tmp | 临时文件夹 | 不包含 | 清除 |
Bundle与sandbox区别
1. 目录获取
bundle:
[[NSBundlemainBundle] pathForResource:@"MyPlist" ofType:@"plist"];
sandbox:
获取程序的Home目录 NSString*homeDirectory = NSHomeDirectory(); 获取document目录 NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); NSString *path =[paths objectAtIndex:0]; 获取Cache目录 NSArray *paths =NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *path =[paths objectAtIndex:0]; 获取Library目录 NSArray *paths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *path =[paths objectAtIndex:0]; 获取tmp目录 NSString *tmpDir= NSTemporaryDirectory();
2 内容存放
Bundle一般存放APP的可执行文件和资源文件(图像,图标等)
Sandbox 只是说明程序资源与外界隔离
NSFileManager
文件操作可使用NSFileManager类。
NSFileManager*fileManager = [NSFileManager defaultManager];
//更改到待操作的目录下
NSString*documentsDirectory = @"";//目录
[fileManagerchangeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]];
//创建文件
createFileAtPath
//删除文件
removeItemAtPath
更多内容可查看苹果官方文档