我读过我可以使用“不备份”属性标记文件夹
据我了解,在这种情况下,目录的所有内容都将从备份中排除
在我们的应用程序中,我们需要从备份中排除Documents目录中的所有文件(可以在应用程序执行期间从文档中添加或删除文件)。
我们需要将文件存储在Documents中,因为我们使用“Application支持iTunes文件共享”功能
我们可以用“不备份属性”标记文档目录吗?
Apple是否允许这样做?
这会成为拒绝我们的应用程序的理由吗?
答案 0 :(得分:6)
根据苹果
在iOS 5.0及更早版本中,将文件放入 / Library / Caches目录阻止它们出现 备份
在iOS 5.0.1及更高版本中,将文件放入 / Library / Application Support目录并申请 com.apple.MobileBackup 扩展属性。此属性可防止将文件备份到iTunes或iCloud。如果你 有大量的支持文件,您可以将它们存储在自定义中 子目录并将扩展属性应用于目录。
据我所知 您不能使用不备份属性
标记文档目录1)您可以使用下面的代码片段
标记文档目录中的各个文件- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString {
NSURL *fileURL =
[NSURL fileURLWithPath:filePathString];
assert([[NSFileManager defaultManager]
fileExistsAtPath: [fileURL path]]);
NSError *error = nil;
BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool:YES]
forKey:NSURLIsExcludedFromBackupKey
error:&error];
return success;
}
2)您可以在文档文件夹中创建一个子目录,并将扩展属性应用于该目录。
您可以使用以下语法设置扩展属性。
int result = setxattr(path, attrName, myDataBytes, [myData length], 0, 0);
您可以在以下link
中找到有关读取和编写扩展属性的更多信息我希望这会有所帮助