В центре внимания: получение MacOS 10.6 для возврата файлов epub в виде файла типа org.idpf.epub-container - PullRequest
1 голос
/ 12 декабря 2011

Я хочу использовать Spotlight API для поиска epub файлов с типом файла org.idpf.epub-container.Это прекрасно работает на Lion, так как Apple добавила в Lion тип файла org.idpf.epub-container.

Я написал импортер Spotlight для файлов .epub.Если я запускаю его вручную, используя mdimport с некоторыми epub файлами в качестве входных данных, Spotlight найдет эти файлы.Но я не получаю результатов от Spotlight NSMetaDataQuery API.(Я печатаю это по памяти. Извините, если я неправильно понял имя.) Если я перезагружаюсь и повторяю запрос, я не получаю никаких результатов.Похоже, что Spotlight не использует мой импортер, хотя он указан в выводе mdimport -L

Атрибут вывода из mdimport -r выглядит нормально.Включая тип файла org.idpf.epup-container и мои определенные атрибуты.

Есть ли у кого-нибудь идеи, почему Spotlight не использует импортер, который работает, если явно вызывается mdimport?

Iесть больше деталей.Если я запускаю:

mdls -name kMDItemContentType file.epub

для файла epub, я получаю:

kMDItemContentType = "dyn.ah62d4rv4ge80n6dzqk"

дажехотя, если я запускаю mdimport -d3 для того же файла, я получаю:

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

Надеюсь, это поможет.

I 'Я собираюсь ответить на мой собственный вопрос.Подсказка в том, что kMDItemContentType установлен на что-то.Поскольку он установлен, Spotlight не изменит его.(Может быть, Spotlight переиндексирует файл, если я использую сенсорный для изменения даты изменения файла.)

Но большее решение - стереть индекс Spotlight с помощью:

mdutil -E / Volume/ Macintosh \ HD

Как только Spotlight перестроит свой индекс, все файлы ePub будут иметь правильную настройку kMDItemContentType.

...