应用程序沙盒目录
- 应用程序包:和app同名,包含所有资源文件和可执行文件
- Document:存放其中的数据会备份到icloud,不允许放下载的数据。用户自行生成的文件放入其中
- Library
- caches:用于存放一些缓存数据,保存应用运行时生成的需要持久化的数据
- preference:存储偏好信息,苹果手机的设置应用会在该目录中查找应用的设置信息
- tmp:临时文件夹,不定期删除
通俗理解
- 一个记事本的app,用户写了东西,总要把东西存起来。那么这个文件则是用户自行生成的,就放在documents文件夹里面。
- 如果有一个app,需要和服务器配合,经常从服务器下载东西,展示给用户看。那么这些下载下来的东西就放在library/cache。
获取app文件目录的方法
//Home目录
NSString *homeDirectory = NSHomeDirectory();
//Document目录 documents (Documents)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path = [paths objectAtIndex:0];
//Libaray目录 various documentation, support, and configuration files, resources (Library)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString *path = [paths objectAtIndex:0];
//Cache目录 location of discardable cache files (Library/Caches)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString *path = [paths objectAtIndex:0];