25 votos

¿Cómo puedo hacer que OS X reconocer las nuevas extensiones de archivo?

En El Finder.la aplicación, puede pulsar la tecla Enter para editar el nombre de la carpeta o archivo seleccionado.

OS X se selecciona automáticamente el nombre de archivo, no a la extensión:

Esto es muy útil, porque de esa manera usted puede comenzar a escribir el nuevo nombre, sin preocuparse por el cambio accidental de la extensión de archivo.

Sin embargo, parece ser que esto solo funciona para "conocido" tipos de archivo. Si lo intentas con un desconocido extensión, al conjunto de nombre de archivo (incluida la extensión) se selecciona:

Traté de asignación de una aplicación que puede abrir todas las .bar de archivos a través de +I → "Cambiar Todas", pero sigo teniendo el comportamiento descrito anteriormente.

Donde está la lista de "conocidos" tipos de archivos almacenados? Es allí una manera de hacer que OS X reconocer nuevos tipos de archivo?

43voto

TachyonVortex Puntos 218

Las infecciones urinarias y Servicios de Lanzamiento

Donde está la lista de "conocidos" tipos de archivos almacenados?

El término oficial para "tipos de archivo" es Tipo De Uniforme Identificadores (UTIs), y la base de datos de Itu es mantenido por Servicios De Lanzamiento.

El uso de la Terminal, usted puede ver el contenido de los Servicios de Lanzamiento de la base de datos utilizando el lsregister herramienta, que se almacena en:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister

En lugar de especificar la ruta de acceso larga cada vez que desee ejecutar lsregister, usted puede agregar temporalmente su directorio para su PATH:

PATH=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:"$PATH"

y, a continuación, puede ejecutar lsregister simplemente escribiendo:

lsregister

Para ver el contenido de los Servicios de Lanzamiento de la base de datos:

lsregister -dump

La Declaración De Nuevas Infecciones Urinarias

Es allí una manera de hacer que OS X reconocer nuevos tipos de archivo?

Este Apple artículo, "La Declaración De Nuevas Uniforme Tipo De Identificadores", se ofrece información útil sobre cómo hacer esto. He aquí el proceso completo:

1. Crear una aplicación de prueba

Crear una aplicación de prueba para registrar con el Lanzamiento de los Servicios de:

  • Abrir el Editor AppleScript (situado en OS X Utilidades de la carpeta).
  • Guardar un nuevo vacío de la secuencia de comandos en algún lugar (por ejemplo: en el Escritorio), estableciendo su Formato de Archivo de Aplicación.

2. Abra su Información.archivo plist

  • Busque la nueva aplicación de prueba en el Buscador.
  • Haga clic derecho sobre él y seleccione Mostrar Contenido del Paquete en el menú emergente.
  • Abra su Contenido de la carpeta.
  • Abra la Info.plist archivo en un editor de texto (por ejemplo: TextEdit).

3. Añadir el nuevo UTI

Hay una opción de dos claves:

  • UTExportedTypeDeclarations – para su propio personalizado extensiones de nombre de archivo.
  • UTImportedTypeDeclarations – para extensiones de nombre de archivo que ya existe pero que no son reconocidos por el OS X.

Seleccione la clave que es el más apropiado para sus necesidades.

A continuación, en la Info.plist archivo, antes de las dos últimas líneas (</dict></plist>), agregue este código:

<key>KEY</key>
<array>
    <dict>
        <key>UTTypeIdentifier</key>
        <string>IDENTIFIER</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>EXTENSION</string>
            </array>
        </dict>
    </dict>
</array>

hacer los siguientes cambios:

  • Reemplace KEY con su clave elegidas ( UTExportedTypeDeclarations o UTImportedTypeDeclarations).
  • Reemplace IDENTIFIER con una adecuada DNS inversa identificador:
    • Exportar – Algo como com.mycompany.mytype
    • Importados – Por id Software's Doom WAD formato, un adecuado identificador sería com.idsoftware.wad
  • Reemplace EXTENSION con la extensión de nombre de archivo (sin el punto), por ejemplo: wad.

Este es el código mínimo necesario para el Lanzamiento de Servicios de aceptar su nueva infección del tracto urinario. Usted puede también agregar las siguientes propiedades opcionales:

  • UTTypeConformsTo – Véase el Apéndice a continuación.
  • UTTypeDescription – Una visibles al usuario la descripción que aparecerá en el Finder.
  • UTTypeIconFile – Si desea añadir un Icono de Apple de la Imagen archivo de la Contents/Resources carpeta en su aplicación ficticia, y añadir su nombre de archivo de esta propiedad, a continuación, los archivos que tiene su nueva extensión de nombre de archivo que va a utilizar este icono.
  • UTTypeReferenceURL – La dirección URL de un documento de referencia que describen este tipo.

He aquí un ejemplo completo que muestra todas las propiedades opcionales:

<key>UTImportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeIdentifier</key>
        <string>com.idsoftware.wad</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>wad</string>
            </array>
        </dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeDescription</key>
        <string>Doom WAD file</string>
        <key>UTTypeIconFile</key>
        <string>DoomWAD.icns</string>
        <key>UTTypeReferenceURL</key>
        <string>http://en.wikipedia.org/wiki/Doom_WAD</string>
    </dict>
</array>

4. Registrar su nueva infección urinaria con el Lanzamiento de los Servicios de

Ejecute este comando en el Terminal:

lsregister <PATH_TO_APP>

reemplazando <PATH_TO_APP> con la ruta de acceso a su aplicación de prueba, por ejemplo:

lsregister ~/Desktop/MyDummyApp.app

Si se crea un archivo con la nueva extensión de nombre de archivo y, a continuación, seleccione en el Finder y pulsa Enter, el Buscador debe seleccionar automáticamente el nombre de archivo, no la extensión.

Si ver el contenido de los Servicios de Lanzamiento de la base de datos:

lsregister -dump

usted debe encontrar su nuevo UTI enumeran:

type    id:            50364
        bindableKey:   12608
        generation:    1
        uti:           com.idsoftware.wad
        description:   Doom WAD file
        flags:         imported  active  apple-internal  untrusted
        icon:          DoomWAD.icns
        conforms to:   public.data
        tags:          .wad

Si más adelante desea anular el registro de su nueva infección urinaria, pasar la -u opción lsregister:

lsregister -u ~/Desktop/MyDummyApp.app

Apéndice: la infección urinaria en la jerarquía y de conformidad

OS X se declara una jerarquía de las infecciones urinarias que se enumeran aquí: Sistema-Declaró Tipo De Uniforme Identificadores.

Aquí están algunas de las infecciones urinarias en la jerarquía:

  • public.content
    • public.text
      • public.rtf
      • public.html
      • public.xml
      • public.plain-text
      • public.source-code
        • public.c-source
        • public.c-header
        • com.sun.java-source
    • public.image
      • public.jpeg
      • public.tiff
      • public.png
    • public.audiovisual-content
      • public.movie
      • public.audio

Cada UTI "se ajusta a" su padre infección del tracto urinario:

Por ejemplo, la infección del tracto urinario public.html, el cual se define de texto HTML, se ajusta a la base identificador de texto, public.text. En este caso, la conformidad permite a las aplicaciones que puede abrir general de archivos de texto identificar los archivos HTML como se puede abrir así. (ref)

Cuando se crea una nueva infección del tracto urinario, es una buena idea para establecer el UTTypeConformsTo de la propiedad a uno de la existente en las infecciones urinarias.

Por ejemplo, si su nueva infección urinaria es un tipo de código fuente, a continuación, debe establecer el UTTypeConformsTo propiedad public.source-code, así que puede ser abierto por cualquier aplicación que puede abrir public.source-code o public.plain-text o public.text archivos.

8voto

binarybob Puntos 6395

Este Superusuario post trabajó para mí:

Usted necesita para buscar la aplicación que desea usar para abrir estos archivos, y editar su paquete. Haga clic en la aplicación para manejar estas extensiones de archivo y seleccione Mostrar Contenido del Paquete. Navegar a Contents, y editar Info.plist. Usted puede ser que necesite de la Lista de propiedades del Editor, que es parte de Apple developer tools. Si tienes suerte, es en formato XML. Editar este archivo CFBundleDocumentTypes y agregue una entrada para la extensión que desee.

He utilizado la edición de textos como la aplicación predeterminada para abrir .bar archivos. Lo único que hice diferente fue cambiar el XML que fue en la edición de textos de la Info.plist para:

    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>bar</string>
        </array>
        <key>CFBundleTypeIconFile</key>
        <string>BarDocument</string>
        <key>CFBundleTypeName</key>
        <string>Bar Document</string>
        <key>CFBundleTypeRole</key>
        <string>Document</string>
    </dict>

...y luego he utilizado LSRefresh.app para actualizar TextEdit en el lanzamiento de los servicios de base de datos. Luego funcionó como usted sugiere, aunque probablemente romper el código de la firma de Textedit (y cualquier otra solicitud firmada) en Lion.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X