iOS 5.0.1:如何验证文件夹是否标记为"不备份"对于iCloud?

时间:2011-11-14 04:18:47

标签: iphone ios ios4 icloud

我想将Do not back up设置为Document Directory中的文件夹。

我找到了"Do not back up"的代码,但我如何验证该文件夹是否已标记。

5 个答案:

答案 0 :(得分:21)

对于iOS 5.1,在模拟器中运行应用程序,并在终端中运行以下命令:

xattr {filename}

如果项目被正确标记为排除,您应该看到以下内容:

com.apple.metadata:com_apple_backup_excludeItem 

答案 1 :(得分:12)

根据您链接的文档,如果您准确地设置了该页面上列出的方法,则如果正确标记了该属性,该方法将返回YES

答案 2 :(得分:11)

  1. 打开模拟器
  2. 删除应用程序(应用程序审核小组会一次运行代码,因此请确保您从头开始)
  3. 现在在模拟器中运行您的代码,您的代码会将您的文件存储在硬盘上。
  4. 打开终端
  5. cd / Users /(用户名)/ Library / Application Support / iPhone模拟器/(ios版)/应用程序
  6. LS
  7. 您将看到一个随机文件夹名称列表,打开每个文件夹名称,直到找到您的应用程序文件夹
  8. for $(find *)中的文件; do du -sk $ file; xattr -l $ file;回声;完成
  9. 您将看到应用程序中的所有文件格式为..

    (filesize)(文件名)
    (iCloud备份排除)
  10. 注意:如果未列出任何内容,则表示将备份该文件(如果它在Library或Documents文件夹中)..如果您看到'com.apple.metadata:com_apple_backup_excludeItem:com.apple.MobileBackup'则你很高兴。

答案 3 :(得分:10)

在模拟器中运行应用程序,然后使用终端对相关文件运行此命令:

xattr -plxv com.apple.MobileBackup <file name>

答案 4 :(得分:2)

对于iOS 5.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;
    }