我可以用“不备份”属性标记文档目录吗?
Posted
技术标签:
【中文标题】我可以用“不备份”属性标记文档目录吗?【英文标题】:Can I mark Documents directory with "do not backup" attribute? 【发布时间】:2013-04-15 07:19:38 【问题描述】:我读过我可以用“不备份”属性标记文件夹。 据我了解,在这种情况下,目录的所有内容都将从备份中排除。 在我们的应用中,我们需要从备份中排除 Documents 目录中的所有文件(这些文件可以在应用执行期间从 Documents 中添加或删除)。 我们需要将文件存储在 Documents 中,因为我们使用“应用程序支持 iTunes 文件共享”功能。 我们可以用“不备份属性”标记文档目录吗? 苹果允许这样做吗? 这会成为拒绝我们应用的理由吗?
【问题讨论】:
【参考方案1】:根据苹果
在 ios 5.0 及更早版本中,将文件放在 /Library/Caches 目录以防止它们被 已备份
在 iOS 5.0.1 及更高版本中,将文件放在 /Library/Application Support 目录并应用 com.apple.MobileBackup 为它们扩展属性。此属性可防止将文件备份到 iTunes 或 iCloud。如果你 有大量的支持文件,您可以将它们存储在自定义 子目录并将扩展属性仅应用于目录。
据我所知 您不能使用不备份属性标记文档目录
1)您可以使用下面的代码 sn-p 标记文档目录中的各个文件
- (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中找到更多关于读写扩展属性的信息
希望对你有帮助
【讨论】:
以上是关于我可以用“不备份”属性标记文档目录吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以在颤振应用程序中保存本地磁盘数据库吗?文档目录在哪里创建路径?