Мне нужно открывать файлы в формате, который не имеет предопределенного UTI, но я не владею форматом. Как я должен экспортировать UTI?

Общий вопрос: когда я не владею определенным файловым форматом, но UTI не был определен для него кем-то другим, как использовать этот формат файла?

Конкретная ситуация: я создаю плагин QuickLook для файлов .torrent и .nzb. (Примечание: файлы .nzb похожи на файлы .torrent, за исключением того, что вместо указания на трекер bittorrent они указывают на сервер Usenet.) Я хочу, чтобы плагин показывал, какие данные указывает файл .nzb/.torrent, какие файлы будут загружены, если они будут открыты, и любые другие применимые метаданные. Для этого я должен указать Uniform Type Identifiers для этих двух типов файлов. В то время как файлы .torrent имеют назначенный UTI для файлов com.bittorrent.torrent,.nzb - формат NZB определяемый newzbin.com, который не публикует собственное приложение (и поэтому не определяет унифицированный идентификатор типа Mac OS X для меня).

Возможные варианты:

  • Экспортируйте и используйте UTI в виде com.example.nzb, где example.com принадлежит мне. Это кажется неправильным, потому что у меня нет формата nzb.
  • Экспортируйте и используйте UTI в виде com.newzbin.nzb, где newzbin.com не принадлежит мне. Это кажется неправильным, потому что у меня нет newzbin.com.
  • Сделайте, например. Unison (приложение Mac OS X) выполняет и полностью игнорирует UTI и использует CFBundleTypeExtensions в моем файле Info.plist. Это тоже кажется неправильным, потому что не только CFBundleTypeExtensions устарел на документацию Apple, но я не думаю, что могу использовать CFBundleTypeExtensions и LSBundleContentTypes (если присутствует LSBundleContentTypes, так как это должно быть для меня использовать com.bittorrent.torrent UTI, то CFBundleTypeExtensions игнорируется).

Какая правильная вещь в этой ситуации?

Ответ 1

Попробуйте использовать утилиту командной строки mdls, чтобы найти файл .nzb UTI.

Например, выполнение mdls в этом фильме QuickTime ясно показывает его UTI, помещенную красным цветом ниже. mdls