gpt4 book ai didi

objective-c - 阻止应用程序备份文档文件夹?

转载 作者:可可西里 更新时间:2023-11-01 05:04:05 26 4
gpt4 key购买 nike

我试图阻止我的应用程序将文件备份到 iCloud,但我变得完全困惑并且有点迷路。

-编辑-

我已更新此内容以反射(reflect)我因以下海报所做的更改。

我想防止备份下载到应用程序文档目录的文件。

到目前为止,我有一个名为 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 打印prevent backup method called without error,但该应用程序仍显示为具有与之前相同的备份数据量。

知道哪里出了问题吗?

-编辑 2-

好的,我想这已经解决了。文件正在下载到名为“下载”的子文件夹中。将上面的代码更改为如下所示似乎已经成功:

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 %@", [URL lastPathComponent], error);
}
return success;
}

NSURL *documentURLWithExtension = [documentURL URLByAppendingPathExtension:extensionType];

将这个“documentURLWithExtension”传递给这个函数

[self addSkipBackupAttributeToItemAtURL:documentURLWithExtension];

关于objective-c - 阻止应用程序备份文档文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13682859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com