gpt4 book ai didi

ios - 我可以在 iOS 中为文件设置任意属性吗?

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

我正在实现一些管理简单文件(如文本文件)的代码,我想向文件添加一些信息,例如位置、标签等,而不在文本文件上写入额外的文本.

我认为最简单的方法是向文件属性添加额外信息,但我不确定这是否可行。

我一直在玩 NSURL 的 setResourceValue:forKey:error:,但似乎只有 NSURL 的预定义键才真正向文件的属性写入内容。所以:

NSURL *fileURL; //suppose this points to something
NSError *error;
id resourceValue;

[fileURL setResourceValue:@"recorded string" forKey:@"testingkey" error:&error];
[fileURL getResourceValue:&resourceValue forKey:@"testingkey" error:&error];

在上面的代码中,函数 setResourceValue:forKey:error:getResourceValue:forKey:error: 都返回 YES ,这意味着它们成功了,但是resourceValue的最终值为nil,这可能意味着该值实际上没有被记录。

那么,有没有一种方法可以在 iOS 中为文件设置自己的属性?如果不是,那么在不修改文件本身的情况下将额外信息吸收到文件中的好(简单)方法是什么?

非常感谢!

最佳答案

这是对这个问题的补充:extended-file-attributes

本文详分割析了如何解决既不改变原文件内容又在文件中写入一些信息的问题。

你可以这样使用:

#include <sys/xattr.h>

if (!&NSURLIsExcludedFromBackupKey) {
// iOS <= 5.0.1
const char *filePath = [[URL path] fileSystemRepresentation];
const char *name = "com.apple.MobileBackup";
u_int8_t value = 1;
int result = setxattr(filePath, name, &value, sizeof(value), 0, 0);
} else {
// iOS >= 5.1
NSError *error = nil;
[URL setResourceValue:@YES
forKey:NSURLIsExcludedFromBackupKey
error:&error];
}

关于ios - 我可以在 iOS 中为文件设置任意属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10023070/

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