App的构成
###每一个App都被放在沙盒(sandbox)中,在沙盒中,有一个Containers,Containers又被分为Bundle Container和Data Container。
SandBox
- Containers
- Bundle Container
- Data Container

Containers下的目录:

Bundle下的目录:

Data 下的目录:

Bundle Container
所谓的Bundle Container就是我们所创建的工程,以.app结尾,就是一个可执行文件(如下图所示)。我们写代码时导入的图片,音频文件也都在这个目录下。

用代码访问该路径的方法:
NSString *bundleContainerPath = [[NSBundle mainBundle] bundlePath];
NSLog(@"bundle container path:%@", bundleContainerPath);

Data Container
而Data Container就是App存放数据的目录。该目录下又分为
- Document //用户生成的数据(聊天记录,下载的文件等)
- Libarary //应用生成的文件,以缓存为主。
- Temp //临时文件。
用代码访问该路径的方法:
NSString *dataContainerPath = NSHomeDirectory();
NSLog(@"data container path:%@", dataContainerPath);

访问Document目录:
// ios下只有一个document目录,所以firstObject即可
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSLog(@"document path:%@", documentPath);
;
NSLog(@"Temp path:%@", tempPath);
