2011-09-13 11 views
10

La pregunta general: cuando no poseo un formato de archivo particular, pero ninguna UTI ha sido definida por otra persona, ¿cómo uso ese formato de archivo?Necesito abrir archivos en un formato que no tiene una UTI predefinida, pero no soy dueño del formato. ¿Cómo debo exportar la UTI?

La situación específica: Estoy creando un complemento QuickLook para archivos .torrent y .nzb. (Nota: los archivos .nzb son similares a los archivos .torrent, excepto que en lugar de apuntar a un rastreador bittorrent, apuntan a un servidor Usenet.) Quiero que el complemento muestre a qué datos apunta el archivo .nzb/.torrent, qué archivos se descargarían si se abrieran, y cualquier otro metadato aplicable. Para hacer esto, tengo que establecer el Uniform Type Identifiers para estos dos tipos de archivos. Si bien los archivos .torrent tienen una UTI designada de com.bittorrent.torrent, los archivos .nzb no lo tienen: el formato NZB es defined by newzbin.com, que no publica su propia aplicación (y, por lo tanto, no define un identificador de tipo uniforme de Mac OS X para yo para usar).

Las opciones parecen ser:

  1. exportación y el uso de una infección urinaria en forma de com.example.nzb, donde example.com es de mi propiedad. Esto parece incorrecto, porque no poseo el formato nzb.
  2. Exportar y usar una UTI en forma de com.newzbin.nzb, donde newzbin.com es no propiedad de mí. Esto parece incorrecto, porque no soy dueño de newzbin.com.
  3. Hacer como p. Unison (una aplicación Mac OS X) e ignora por completo UTI, y usa CFBundleTypeExtensions en mi archivo Info.plist. Esto parece incorrecto también, porque no solo está CFBundleTypeExtensions obsoleto por Apple's documentation, pero no creo que pueda mezclar el uso de CFBundleTypeExtensions y LSBundleContentTypes (si LSBundleContentTypes está presente, ya que debo usar el com.bittorrent.torrent UTI, luego se ignora CFBundleTypeExtensions).

¿Qué es lo que hay que hacer en esta situación?

+0

Gran pregunta. :) –

Respuesta

5

Intente utilizar la utilidad de línea de comandos mdls para buscar la UTI de un archivo .nzb.

Por ejemplo, realizar mdls en esta película QuickTime muestra claramente su UTI, enmarcada en rojo a continuación. mdls

+2

Cuando hago eso, obtengo un valor dyn. * Para kMDItemContentType - 'kMDItemContentType =" dyn.ah62d4rv4ge8068xc "'. Apple dice que este es un [Identificador dinámico de tipo] (http://developer.apple.com/library/mac/#DOCUMENTATION/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html). Sin embargo, parece ser exclusivo del sistema en el que se genera, por lo que no es una solución permanente. –

+0

Eso es desafortunado. Haré un poco de investigación sobre esto. – spudwaffle

+1

Parece que la mejor idea sería declararlo como 'public.nzb', ya que no es de su propiedad. Solo asegúrese de que no haya conflictos con las aplicaciones existentes que abren este archivo. – spudwaffle

Cuestiones relacionadas