gpt4 book ai didi

macos - 将 Spotlight 元数据写入 OS X 上的文件(特别是 kMDItemDisplayName)

转载 作者:行者123 更新时间:2023-12-04 05:21:52 25 4
gpt4 key购买 nike

我看到 Ken T. 之前已经回答了这个问题,但是我有一个代码似乎可以工作的情况,并且对 setxattr() 的调用返回 0,但是我想要修改的项目没有改变。

具体来说,我正在尝试更改元数据属性 kMDItemDisplayName,我的调用如下所示(模仿 Ken T 发布的示例):

[注意:下面的“名称”参数是一个 NSString *]

rc = setxattr([pathString cStringUsingEncoding:NSUTF8StringEncoding],
"kMDItemDisplayName",
[name cStringUsingEncoding:NSUTF8StringEncoding],
[name lengthOfBytesUsingEncoding:NSUTF8StringEncoding],
0,
0);

对相关文件执行 mdls 表明存在 kMDItemDisplayName 属性,但我无法将其更改为实际文件名以外的任何内容(我认为这是默认行为)。

我是否误解了 setxattr() 应该如何工作?

非常感谢任何帮助。

哦,顺便说一句,我为什么要这样做?看来(通过检查 Bare Bones 的 Yojimbo 如何做事)Spotlight 使用 kMDItemDisplayName 值在查找器的 Spotlight 搜索结果菜单中列出文件,这是我想在我的应用程序中实现的东西。

谢谢!

嘿嘿……等一下……

在命令行中,执行 xattr -l 表明,据 xattr 所知,有一个名为 kMDItemDisplayName 的属性,这就是我将其设置为...但是,同一文件中的 mdls 仍将 kMDItemDisplayName 属性显示为文件名。

我需要询问 Launch Services 而不是 xattr 的东西吗??

最佳答案

好的。在四处寻找并阅读更多 Apple 文档后,我意识到我需要做什么。我正在回答我自己的问题,希望这些信息可能对其他人有所帮助。

因为我必须编写自己的 mdimporter 来支持我的应用程序的文件格式,所以我想我会尝试在元数据导入时将 kMDItemDisplay 名称项添加到元数据存储中。

令我惊讶和高兴的是,它在第​​一次尝试时就成功了!

因此,答案是,如果您想覆盖或添加自定义 kMDItem* 类型,您可以在元数据导入时使用 Spotlight 导入器执行此操作。

希望有人觉得这有帮助!

关于macos - 将 Spotlight 元数据写入 OS X 上的文件(特别是 kMDItemDisplayName),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13597668/

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