我可以使用“不备份”属性标记文档目录吗?

时间:2013-04-15 07:19:38

标签: ios backup

我读过我可以使用“不备份”属性标记文件夹 据我了解,在这种情况下,目录的所有内容都将从备份中排除 在我们的应用程序中,我们需要从备份中排除Documents目录中的所有文件(可以在应用程序执行期间从文档中添加或删除文件)。
我们需要将文件存储在Documents中,因为我们使用“Application支持iTunes文件共享”功能 我们可以用“不备份属性”标记文档目录吗? Apple是否允许这样做?
这会成为拒绝我们的应用程序的理由吗?

1 个答案:

答案 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

中找到有关读取和编写扩展属性的更多信息

我希望这会有所帮助