1

我想使用 Spotlight API 来查找epub文件类型为 as 的文件org.idpf.epub-container。这在 Lion 上运行良好,因为 Apple 已将org.idpf.epub-container文件类型添加到 Lion。

我为文件编写了一个 Spotlight 导入.epub器。mdimport如果我使用一些文件作为输入手动运行它,epub那么 Spotlight 将找到这些文件。但是我没有从 Spotlight NSMetaDataQueryAPI 得到任何结果。(我是凭记忆输入的。对不起,如果我把名字弄错了。)如果我重新启动并重试查询,我不会得到任何结果。看起来 Spotlight 没有使用我的导入器,即使它在输出中列出mdimport -L

mdimport -r看起来很好的属性输出。包括文件类型org.idpf.epup-container和我定义的属性。

有没有人知道为什么 Spotlight 不会使用如果mdimport显式调用似乎可以工作的导入器?

我有更多细节。如果我运行:

mdls -name kMDItemContentType 文件.epub

针对我得到的 epub 文件:

kMDItemContentType = "dyn.ah62d4rv4ge80n6dzqk"

即使我对同一个文件运行 mdimport -d3 我得到:

kMDItemContentType = "org.idpf.epub-container";

希望这可以帮助。

我要回答我自己的问题。提示是 kMDItemContentType 设置为某个值。由于它已设置 Spotlight 不会改变它。(如果我使用触摸更改文件的修改日期,Spotlight 可能会重新索引文件。)

但更大的解决方案是使用以下方法擦除 Spotlight 索引:

mdutil -E /卷/Macintosh\ HD

一旦 Spotlight 重建它的索引,那么所有 ePub 文件都具有正确的 kMDItemContentType 设置。

4

0 回答 0