3
我想让我的应用程序文件系统保存关于其中每个文件的元数据,但也支持在用户端创建目录。我看过NSFileWrapper
,但它似乎将元数据保存为目录的文件。这是有道理的,但现在如何区分实际目录和NSFileWrapper
目录?或者我应该在每个目录中使用隐藏的plist
文件跟踪元数据?预先感谢任何帮助!区分NSFileWrapper和目录?
我想让我的应用程序文件系统保存关于其中每个文件的元数据,但也支持在用户端创建目录。我看过NSFileWrapper
,但它似乎将元数据保存为目录的文件。这是有道理的,但现在如何区分实际目录和NSFileWrapper
目录?或者我应该在每个目录中使用隐藏的plist
文件跟踪元数据?预先感谢任何帮助!区分NSFileWrapper和目录?
您可以使用setxattr在文件上存储元数据的额外键/值对。 Mattt Thompson撰写了关于NSHipster的优秀深度文章。
这里是例如从制品,显示出如何设置的属性值:在其上支持扩展的元数据属性的Mac文件系统
#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
作品。在OS X和iOS上,这由HFS +支持,其中元数据存储在资源分支中,最大大小限制为128KB。
您可以使用listxattr来检索可用标签。使用getxattr检索特定标签的值。
使用此应用程序的一个示例是TextMate,它存储状态信息,例如当前插入符号位置,书签和行折叠。
重要的是要注意元数据是不稳定的,不应该依赖于保留关键信息。
其他参考:
它看起来像'setxattr'可能对这项工作。 http://nshipster.com/extended-file-attributes/ –
@LukeVanIn这绝对是真棒。你能否将这一点形容为某种答案,并引用了它的使用情况?像TextMate一样? –