- <Application_Home>/AppName.app:存放应用程序自身
- <Application_Home>/Documents/:存放用户文档和应用数据文件
- <Application_Home>/Library/:应用程序规范的顶级目录,下面有一些规范定义的的子目录,当然也可以自定义子目录,用于存放应用的文件,但是不宜存放用户数据文件
- <Application_Home>/Library/Preferences,这里存放程序规范要求的首选项文件
- <Application_Home>/Library/Caches,保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存
- <Application_Home>/tmp/,保存应用数据,但不需要持久化的,在应用关闭后,该目录下的数据将删除
备份和恢复
iTunes应用可在适当情况下自动处理备份和恢复。然后,应用需要知道备份和恢复的文件放在哪里。
什么是备份
你不必为你的应用备份和恢复做任何准备。在iOS 2.2以后,当设备连接到电脑并开始同步后,iTunes会自动增量备份所有文件,但不包括下面的目录:
- <Application_Home>/AppName.app
- <Application_Home>/Library/Caches
- <Application_Home>/tmp
虽然iTunes备份应用自身,但不是每次同步都这样做。从app store上购买的应用,只在随后的同步过程中被iTunes备份。再之后,iTunes并不在同步操作中备份应用,除非应用自身发生变化,比如应用的升级。
为了避免同步过程时间过长,你需要对应用中使用的文件放在哪里做出选择。<Application_Home>/Documents目录用来存放用户文档和应用数据文件。临时文件要保存在Application Home/tmp目录下,这样可以在不需要时删除。如果在两次启动中都需要的数据文件,但是不需要备份的,可放置在Application Home/Library/Caches。比如很大的数据文件,尽量放置在Caches目录下,而不是Documents目录下,Documents目录下文件将做备份,这样会很耗时。
应用更新期间的文件保存
如果文件需要在应用更新后依然存在,需要放置在:
- <Application_Home>/Documents
- <Application_Home>/Library
http://www.cppblog.com/cugdj/archive/2011/10/17/158544.html
//相对,绝对路径问题 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSLog(@"%@",documentsDirectory);//documents目录路径 //Users/jstv/Library/Application Support/iPhone Simulator/5.1/Applications/12C32E44-1C6F-4DA1-AC98-DF9C9247CBC5/Documents NSLog(@"%@",NSHomeDirectory());//app文件所在目录路径 //Users/jstv/Library/Application Support/iPhone Simulator/5.1/Applications/12C32E44-1C6F-4DA1-AC98-DF9C9247CBC5 NSLog(@"临时文件夹%@",NSTemporaryDirectory()); //tmp目录路径 ///var/folders/wq/15313ptj2xl_b3zdwjkvd6wc0000gn/T/ NSLog(@"%@",[[NSBundle mainBundle] resourcePath]);//程序应用包路径 //Users/jstv/Library/Application Support/iPhone Simulator/5.1/Applications/12C32E44-1C6F-4DA1-AC98-DF9C9247CBC5/fileManage.app //或者 NSLog(@"%@",[[NSBundle mainBundle] pathForResource: @"bomb" ofType: @"jpg"]); //Users/jstv/Library/Application Support/iPhone Simulator/5.1/Applications/12C32E44-1C6F-4DA1-AC98-DF9C9247CBC5/fileManage.app/bomb.jpg