我想从备份中排除文档存储类中的目录。
像这样设置排除属性
+ (BOOL)kit_addSkipBackupAttributeForItemAtURL:(NSURL *)url
{
if (![[NSFileManager defaultManager] fileExistsAtPath:url.path]) {
return NO;
}
NSError *error = nil;
NSNumber *value = nil;
BOOL success = [url getResourceValue:&value forKey:NSURLIsExcludedFromBackupKey error:&error];
if (value.boolValue == YES) {
NSLog(@"ALREADY Excluded %@ from backup", [url absoluteString]);
return YES;
}
success = [url setResourceValue:@(YES)
forKey:NSURLIsExcludedFromBackupKey
error:&error];
if (!success){
NSLog(@"Error excluding %@ from backup: %@", [url lastPathComponent], error);
}
success = [url getResourceValue:&value
forKey:NSURLIsExcludedFromBackupKey
error:&error];
NSAssert(success, @"The backup exclusion attribute is missing");
NSLog(@"Excluding %@ from backup", [url absoluteString]);
NSAssert(value.boolValue, @"The backup exclusion attribute is false");
return success;
}
确实 trip: value.boolValue 为 NO,稍后使用 ls -la@ {directoryname} 列出目录不会显示该属性。不知何故,它不适用于文件系统中的某些项目(在同一存储类别内!)。
UPD:应用程序支持中的情况相同,但它们不粘 UPD2:它也不会粘在库/缓存中的一个特定目录上!什么?
已解决:应用程序支持存储类是专门为这些无人区情况而创建的,当数据不需要清除时,但数据还不够重要,无法进行整体备份(不是由该用户创建的文档,并且在其他地方不可用) ).