加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读