gpt4 book ai didi

iphone - 如何为文件夹中的所有文件和文件夹设置 NSURL 资源值

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:15 25 4
gpt4 key购买 nike

我试图通过将其 NSURLIsExcludedFromBackupKey 设置为 1 来阻止整个文件夹及其内容备份到 iCloud,如 guidelines 中所示.我能够将 key 设置为文件夹的 URL,但是我随后保存在其中的所有数据的 NSURLIsExcludedFromBackupKey...

都有 0

这是我的代码:

//create the directory:
[[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:nil];
NSURL *folderURL = [NSURL fileURLWithPath:path isDirectory:YES];

//prevent backup:
NSError *preventBackupError = nil;
BOOL success = [folderURL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey
error: &preventBackupError];

//this prints 1 and 1:
NSLog(@"resource values for directory: %@", [folderURL resourceValuesForKeys:@[NSURLIsExcludedFromBackupKey, NSURLIsDirectoryKey] error:nil]);

现在,如果我在 folderURL 的子目录中保存一个文件(在本例中为 config.xml),然后执行以下操作:

NSURL *fileURL = [NSURL fileURLWithPath:[path stringByAppendingPathComponent:@"config.xml"]];
if ([[NSFileManager defaultManager] fileExistsAtPath:fileURL.path]) {
NSLog(@"resource values for config file: %@", [configURL resourceValuesForKeys:@[NSURLIsExcludedFromBackupKey] error:nil]);
}

这会打印 NSURLIsExcludedFromBackupKey = 0;

我检查了其他 SO 答案,例如 this one , this one , 或 this one ,我看不出我的语法有任何区别......

所以我的问题是,我是否必须为文件夹中的每个文件手动设置该键?还是我做错了什么?

干杯

最佳答案

Cocoa 没有内置的单一方法来递归地将属性应用于资源及其后代。我想部分原因是为了简化错误处理。但是,这样做也是非常罕见的。

幸运的是,构建您自己的系统非常容易:

  1. 将所需属性应用于相关目录资源
  2. NSFileManager 询问目录枚举器
  3. 枚举所有项目(默认情况下,NSDirectoryEnumerator 将为您进入所有子目录),也为每个项目应用属性

虽然您的情况似乎不需要这样做;将 NSURLIsExcludedFromBackupKey 应用到目录,并完成它。

关于iphone - 如何为文件夹中的所有文件和文件夹设置 NSURL 资源值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15525260/

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