http://blog.csdn.net/hamasn/article/details/7711749
BOOL result = [fileUrl setResourceValue:@YES forKey:NSURLIsExcludedFromBackupKey error:&error];
if (error) {
NSLog(@"Failed to exclude file from backup: %@", error);
}
重要的数据(不要由你的app再生的data)必须存储在 <Application_Home>/Documents 文件夹下。
你的app沙盒中的下面这些文件夹ICloud不会去备份!
支持文件(翻译过来很别扭,翻译水平比较弱,还是用英文吧)包括你的app下载的或产生的以及必要时候你的app可以再生的data。存储你的Support files的位置取决于你当前IOS的版本
在5.1及以后版本,存储Support files在 <Application_Home>/Library/Application Support 这个文件夹下,然后用 setResourceValue:forKey:error:函数,添加NSURLIsExcludedFromBackupKey这个属性,代码官网已经给了,上面的list1就是!添加这个属性防止你的文件被上传打iTunes或者iCloud如果你有大量的 support files,你可以在这个目录下创建一个子目录,然后只对目录进行扩展属性就可以了。(翻译的有点纠结~点到为止)
在IOS5.0及以前前面已经说了,必要要存在 <Application_Home>/Library/Caches下面防止上传,但是会有随时被删除的可能~!如果你要支持IOS5.0.1,参见上面那个链接,将文件属性设置一下就可以了。具体代码如list2所示!上面已经给了。
缓存数据必要存储在 <Application_Home>/Library/Caches 目录下,例如下面这类文件应该放在Caches文件下,数据库缓存文件,可下载内容数据,比如应在杂志、报纸、和地图的app等等。你的app必须要处理好当cached 数据被系统删掉以释放硬盘空间的情况。
临时文件应该存在 <Application_Home>/tmp目录下,临时文件包括哪些你不需要保存很长时间的data,但是你要记住,在你对他完成操作的时候,记得删掉临时文件,免得让这些临时数据消耗用户的空间。
1、模拟器上
NSHomeDirectory
/Users/xxx/Library/Developer/CoreSimulator/Devices/0A2D9F05-A679-49B6-9D9B-DC5107E44E1F/data/Containers/Data/Application/C5EA4B49-FF29-461C-8F72-878B3CE2783D
NSTemporaryDirectory
/Users/xxx/Library/Developer/CoreSimulator/Devices/0A2D9F05-A679-49B6-9D9B-DC5107E44E1F/data/Containers/Data/Application/C5EA4B49-FF29-461C-8F72-878B3CE2783D/tmp/
2、手机真机上
NSHomeDirectory
/var/mobile/Containers/Data/Application/C5EA4B49-FF29-461C-8F72-878B3CE2783D
NSTemporaryDirectory
/private/var/mobile/Containers/Data/Application/765F68EC-0D73-404C-992E-47FB4C5984AF/tmp/
3、MAC命令行程序
NSHomeDirectory
/Users/xxx/
NSTemporaryDirectory
/var/folders/wl/hf5skt2d3q900zk5yddndzy00000gn/T/
总结
(1)沙盒目录,app运行时的沙盒,app的写操作被限制在此目录中。mac程序对应于家目录。
(2)bundlePath,app安装的地址,app安装包所在的目录,不可以写。里面是程序的可执行文件和资源文件等。
(3)由域名 & 目录 两两结合组装而成的目录路径, 不一定真实存在
searchpath domain
searchpath directory