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);复制代码
![屏幕快照 2017-11-28 下午11.23.27.png](http://upload-images.jianshu.io/upload_images/5020103-aefc4bdacfbedd9a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
访问Temp
方法:
NSString *tempPath = NSTemporaryDirectory(); NSLog(@"Temp path:%@", tempPath);复制代码