web-dev-qa-db-fra.com

Où Mac OS X stocke-t-il les informations d'association de fichiers?

Je sais qu’il existe un panneau de préférences système permettant de modifier manuellement les associations de fichiers dans Mac OS X Leopard. Cependant, je suis curieux de savoir où Leopard stocke réellement ces informations.

Je ne suis pas intéressé par les méthodes pour les changer. Je souhaite connaître le fichier de configuration ou la base de données (comme le registre sous Windows) où ces mappages sont stockés.

24
Mehrdad Afshari

Désolé, cette question est ancienne, mais la réponse est vraiment fausse.

Comme le dit toolbear, la réponse de Doug Harris n'est que partiellement correcte.

Le fichier base de données de services de lancement, qui est où tout des informations pour tout les applications connues et les types de documents qu’ils peuvent gérer sont stockés, est situé à l'emplacement suivant:

Lion:

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

Léopard des neiges:

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

Léopard:

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

Le dossier /private/var/folders/ est l'endroit où sont stockés les dossiers "sécurisés" et les dossiers temporaires pour chaque utilisateur. Le ** dans le chemin indiqué ci-dessus sera quelque chose comme /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/, ou une autre séquence de caractères obscure pour éviter de deviner.

Notez que le nom com.Apple.LaunchServices-025501.csstore est composé de l’ID utilisateur (le mien est 501) ajouté au suffixe -025, propre à Snow Leopard. (Dans chaque version de OS X, Apple a tendance à changer le suffixe distinctif utilisé pour éviter les problèmes de compatibilité entre les différentes versions de OS X. Vous remarquerez que Leopard a utilisé -023). Lion utilise le suffixe -034.

12
NSGod

OS X utilise un système "par défaut" - voici un article de Nice avec beaucoup d'exemples. Les fichiers sont stockés sous ~/Bibliothèque/Preferences, mais il est préférable de manipuler avec la commande "default" plutôt que de modifier directement les plists.

Les associations de fichiers sont stockées sous le domaine com.Apple.LaunchServices. À partir du lien ci-dessus, vous pouvez voir la liste avec cette commande:

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

Vous trouverez beaucoup plus d’informations sur Launch Services en particulier dans le Guide de programmation des services de lancement

17
Doug Harris

La réponse de @Doug Harris n'est que partiellement correcte. Le système par défaut stocke vos ajouts locaux ou substitutions aux associations de fichiers. Cependant, OS X est livré avec certaines associations par défaut, à l’échelle du système.

Si vous exécutez lsregister -dump, vous verrez comment Launch Services appelle CoreTypes et les associations fournies par les applications trouvées.

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

Je n'ai pas complètement analysé la sortie. Il peut y avoir d'autres sources indiquées dans ce vidage, mais un grand nombre de ces types proviennent de /System/Library/CoreServices/CoreTypes.bundle. Il peut y avoir un fichier texte ou plist dans lequel les types sont énumérés. Je crois que les associations proviennent de l'analyse du contenu de * .app dans des emplacements d'application connus. Voici où Launch Services comprend que TextWrangler est un éditeur pour de nombreux types de fichiers:

--------------------------------------------------------------------------------
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

Peasy facile! C'est juste que ce n'est pas à la place la plus évidente:

  • Faites un clic droit sur le fichier pour lequel vous souhaitez modifier l’association et sélectionnez " Lire les informations " (ou sélectionnez et tapez )Command+I.
  • Descendez à " ouvre avec " (vous devrez peut-être cliquer sur la flèche à côté de celle-ci pour l'agrandir) et sélectionner un autre programme dans la liste déroulante.
  • Cliquez sur le bouton " Modifier tout ... " pour modifier cette association de fichiers pour tous les fichiers de la même extension sur votre système.

enter image description here

Vous pouvez également installer et installer RCDefaultApp prefpane pour modifier toutes les associations de fichiers au même endroit.

2
Josh Hunt