Adding the “Do Not Backup” attribute to a folder hierarchy in iOS 5.0.1

后端 未结 6 901
遇见更好的自我
遇见更好的自我 2020-12-07 21:32

Referencing iCloud + Storage of media in iPhone Documents folder, which shows how to set the iOS 5.0.1 \"Do Not Backup\" attribute for a file.

Is there an efficient

6条回答
  •  无人及你
    2020-12-07 22:08

    You could put one specific directory inside the documents dir for this purpose, put everything inside and only mark that single directory as do-not-backup using the

     addSkipBackupAttributeToItemAtURL
    

    method shown in the article you linked, or use this one that uses a path instead of an URL:

    + (void)addSkipBackupAttributeToPath:(NSString*)path {
        u_int8_t b = 1;
        setxattr([path fileSystemRepresentation], "com.apple.MobileBackup", &b, 1, 0, 0);
    }
    

    example using a directory:

    NSString *docsDirPath = [(AppDelegate*)[[UIApplication sharedApplication] delegate] applicationDocumentsDirectory];
    NSString *yourContentsDirPath = [docsDirPath stringByAppendingPathComponent:gContentsDirName];
    
    [Utilities addSkipBackupAttributeToPath:yourContentsDirPath];
    

    [EDIT]

    I forgot this method use in the delegate to get the documents dir:

    - (NSString *)applicationDocumentsDirectory {
    
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
        return basePath;
    }
    

提交回复
热议问题