iOS沙盒文件夹及获取路径方法

iPhone沙盒中有四个文件夹,分别是:documents、tmp、app、library.

1、Documents :用户生成的文档或数据,或者应用不能重新新创建的数据,存储在/Documents目录下,并且会被自动备份到iCloud;

2、AppName.app :应用程序的包存储在/app目录下。由于应用程序必须经过签名,所以该目录下的内容不能修改,否则程序可能无法启动;

3、tmp:临时文件存放在该目录下(应用程序再次启动时不需要的信息,应用需要写到本地存储,内部使用的临时数据,但不需要长期保留使用),文件不会被iCloud备份,应用在使用完之后需要记得删除这些文件,这样才不会继续占用用户设备的空间;

4、Library:其又被分为Caches和Preferences。其中Caches存放应用程序可以重新下载或生成的数据(保存应用程序再次启动时需要的信息,如数据库缓存文件、可下载文件(杂志、报纸、地图应用使用的数据)等),Preferences包含应用程序的偏好设置文件(不能直接创建偏好设置文件,需要通过使用NSUserDefaults类还获取和设置应用程序的偏好设置)。

Documents应用程序在运行时生成的一些需要长久保存的数据。Library/Caches 储存应用程序网络请求的数据信息(音视频与图片等的缓存)。此目录下的数据不会自动删除,需要程序员手动清除该目录下的数据。主要用于保存应用在运行时生成的需要长期使用的数据.一般用于存储体积较大数据。Library/Preferences 设置应用的一些功能会在该目录中查找相应设置的信息,该目录由系统自动管理,通常用来储存一些基本的应用配置信息,比如账号密码,自动登录等。tmp 保存应用运行时产生的一些临时数据;应用程序退出、系统空间不够、手机重启等情况下都会自动清除该目录的数据。无需程序员手动清除该目录中的数据。

获取这些目录路径的方法:

1,获取家目录(app文件)路径的函数:

NSString *homePath = NSHomeDirectory();

2,获取Documents目录路径的方法:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString *docDir =[paths objectAtIndex:0];

3,获取Caches目录路径的方法:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString *cachesDir =[paths objectAtIndex:0];

4,获取tmp目录路径的方法:

NSString *tmpDir = NSTemporaryDirectory();

5,获取应用程序程序包中资源文件路径的方法:

例如获取程序包中一个图片资源(apple.png)路径的方法:

NSString *imagePath =[[NSBundle mainBundle]pathForResource:@”apple”ofType:@”png”];

UIImage *appleImage =[[UIImage alloc]initWithContentsOfFile:imagePath];

代码中的mainBundle类方法用于返回一个代表应用程序包的对象。

你可能感兴趣的:(iOS沙盒文件夹及获取路径方法)