it-swarm-es.tech

¿Dónde almacena Mac OS X la información de asociación de archivos?

Sé que hay un panel de preferencias del sistema para modificar manualmente las asociaciones de archivos en Mac OS X Leopard. Sin embargo, tengo curiosidad por saber dónde guarda realmente Leopard esta información.

No me interesan los métodos para cambiarlos. Quiero saber el archivo de configuración o la base de datos (como el registro en Windows) donde se almacenan esas asignaciones.

25
Mehrdad Afshari

Lo siento, esta pregunta es antigua, pero la respuesta es realmente incorrecta.

Como mencionó toolbear, la respuesta de Doug Harris es solo parcialmente correcta.

El archivo Launch Services Database, que es donde se almacena todos de la información para todos aplicaciones conocidas y los tipos de documentos que pueden manejar, se almacena ubicado en la siguiente ubicación:

León:

/private/var/folders/**/**/-Caches-/com.Apple.LaunchServices-034501.csstore

Leopardo de nieve:

/private/var/folders/**/**/-Caches-/com.Apple.LaunchServices-025501.csstore

Leopardo:

/Library/Caches/com.Apple.LaunchServices-023501.csstore

Los /private/var/folders/ carpeta es donde se almacenan las cachés "seguras" y las carpetas temporales para cada usuario. Los ** en la ruta que se muestra arriba serán algo así como /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/ u otra secuencia de caracteres oscura para evitar adivinanzas.

Tenga en cuenta que el nombre com.Apple.LaunchServices-025501.csstore está compuesto por el ID de usuario (el mío es 501) anexado a la -025 sufijo, que es exclusivo de Snow Leopard. (En cada versión de OS X, Apple tiende a cambiar el sufijo distintivo utilizado para evitar problemas de compatibilidad entre diferentes versiones de OS X. Notarás que Leopard usó -023). Lion está usando el -034 sufijo.

13
NSGod

OS X utiliza un sistema "predeterminado": aquí hay un Artículo agradable con muchos ejemplos. Los archivos se almacenan en ~/Library/Preferences, pero es mejor manipularlos con el comando "predeterminado" en lugar de editar los plists directamente.

Las asociaciones de archivos se almacenan en el dominio com.Apple.LaunchServices. Desde el enlace de arriba, puede ver la lista con este comando:

defaults read com.Apple.LaunchServices | grep -v LSBundleLocator

Puede encontrar mucha más información sobre los Servicios de lanzamiento específicamente en Apple Guía de programación de servicios de lanzamiento

18
Doug Harris

La respuesta de @Doug Harris es solo parcialmente correcta. El sistema predeterminado almacena sus adiciones locales o anulaciones a las asociaciones de archivos. Sin embargo, OS X viene con algunas asociaciones predeterminadas de todo el sistema.

Si tu corres lsregister -dump verá lo que Launch Services llama CoreTypes y las asociaciones proporcionadas por las aplicaciones que encuentra.

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump

No he escaneado exhaustivamente la salida. Puede haber otras fuentes indicadas en ese volcado, pero una gran cantidad de estos tipos provienen de /System/Library/CoreServices/CoreTypes.bundle. Puede haber un archivo de texto sin formato o plist allí donde se enumeran los tipos. Las asociaciones que creo provienen de escanear el contenido de * .app en ubicaciones de aplicaciones conocidas. Aquí es donde Launch Services entiende que TextWrangler es un editor de numerosos tipos de archivos:

--------------------------------------------------------------------------------
bundle  id:            10928
    path:          /Applications/TextWrangler.app
    name:          TextWrangler
    identifier:    com.barebones.textwrangler (0x8000008d)
    ...
    library items:
    --------------------------------------------------------
    claim   id:            20216
        name:          TextWrangler text document
        rank:          Default
        roles:         Editor  
        flags:         relative-icon-path  
        icon:          Contents/Resources/TextWranglerTextDoc.icns
        bindings:      .a, .asm, .asp, .bashrc, .c, .c++, .cc, .cfm, .conf, .cp, .cpp, .cshrc, .css, .cxx, .equ, .f, .f77, .for, .ftn, .h, .h++, .hpp, .htm, .html, .inc, .j, .Java, .js, .jsp, .log, .m, .mm, .p, .pas, .pch, .pch++, .php, .php3, .pl, .plist, .plx, .pm, .ppu, .r, .rb, .rez, .rhtml, .rss, .s, .sql, .shtm, .shtml, .tcl, .tcshrc, .text, .txt, .wml, .xhtml, .xml, .xsl, .xslt, .yaml, 'TEXT'
    ...
15
toolbear74

¡Pan comido! Es solo que no está en el lugar más obvio:

  • Haga clic derecho en el archivo para el que desea cambiar la asociación y seleccione " Obtener información " (o simplemente seleccione y presione Command+I.
  • Vaya a " Abre con " (puede que tenga que hacer clic en la flecha al lado para expandirlo) y seleccione otro programa en el cuadro desplegable.
  • Haga clic en el botón " Cambiar todo ... " para cambiar esta asociación de archivos para todos los archivos de la misma extensión en su sistema.

enter image description here

También puede salir e instalar RCDefaultApp prefpane para modificar todas las asociaciones de archivos en un solo lugar.

2
Josh Hunt