objective-c – 阻止应用程序备份文档文件夹?
发布时间:2020-12-15 01:51:30 所属栏目:百科 来源:网络整理
导读:我试图阻止我的应用程序将文件备份到iCloud,但已经变得完全混乱,有点迷失. -编辑- 我已经对此进行了更新,以反映我在下面的海报中所做的更改. 我想阻止备份到应用程序文档目录的文件. 到目前为止,我有一个名为PreventBackup的类,具有以下方法: + (BOOL)addSk
我试图阻止我的应用程序将文件备份到iCloud,但已经变得完全混乱,有点迷失.
-编辑- 我已经对此进行了更新,以反映我在下面的海报中所做的更改. 我想阻止备份到应用程序文档目录的文件. 到目前为止,我有一个名为PreventBackup的类,具有以下方法: + (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { NSError *error = nil; BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error]; if(!success){ NSLog(@"Error excluding %@ from backup %@",[URL lastPathComponent],error); } NSLog(@"prevent backup method called without error"); return success; } 我在应用程序启动时使用此代码调用它: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSURL *pathURL= [NSURL fileURLWithPath:documentsDirectory]; [PreventBackup addSkipBackupAttributeToItemAtURL:pathURL]; cosole打印防止调用的备份方法没有错误,但应用程序仍显示为具有相同数量的数据,以便以前执行备份. 知道这出错了吗? -EDIT 2- 好的,我认为这已经解决了.文件正在下载到名为“downloads”的子文件夹.更改上面的代码,使其读取如下似乎已成功: NSString *downloadsFolder = [documentsDirectory stringByAppendingPathComponent:(@"/downloads")]; NSURL *pathURL= [NSURL fileURLWithPath:downloadsFolder]; [PreventBackup addSkipBackupAttributeToItemAtURL:pathURL]; 感谢大家的帮助. 解决方法- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]); NSError *error = nil; BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error]; if(!success){ NSLog(@"Error excluding %@ from backup %@",error); } return success; } NSURL *documentURLWithExtension = [documentURL URLByAppendingPathExtension:extensionType]; 将此“documentURLWithExtension”传递给此函数 [self addSkipBackupAttributeToItemAtURL:documentURLWithExtension]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |