我想让我的应用程序文件系统保存关于其中每个文件的元数据,但也支持在用户端创建目录。我看过NSFileWrapper,但它似乎将带有元数据的文件保存为目录。这是有意义的,但是现在我如何区分实际目录和NSFileWrapper目录呢?或者我应该用每个目录中隐藏的plist文件来跟踪元数据吗?提前感谢您的帮助!
发布于 2016-07-21 00:33:47
您可以使用塞扎特在文件中存储额外的元数据键/值对。马特-汤普森写了一篇关于NSHipster的优秀深入文章.
下面是本文中的示例,展示了如何设置属性值:
#include <sys/xattr.h>const char *filePath = [fileURL fileSystemRepresentation];
const char *name = "com.Example.Etag";
const char *value = [[response allHeaderFields][@"Etag"] UTF8String];
int result = setxattr(filePath, name, value, strlen(value), 0, 0);setxattr工作在Mac文件系统上,它支持扩展的元数据属性。在OS和iOS上,HFS+支持这一点,其中元数据存储在资源叉中,最大大小限制为128 of。
您可以使用李斯特检索可用的标记。使用[医] getxattr检索特定标记的值。
使用此方法的应用程序的一个示例是TextMate,它存储当前插入符号位置、书签和行折叠等状态信息。
必须指出,元数据是不稳定的,不应依赖于保留关键信息。
其他参考资料:
https://stackoverflow.com/questions/38387075
复制相似问题