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


24

Je sais qu'il existe un volet des préférences système pour 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 veux connaître le fichier de configuration ou la base de données (comme le registre dans Windows) où ces mappages sont stockés.


certains, veuillez réétiqueter ceci avec "mac" et "osx" (ces balises sont plus largement utilisées)
Thilo

Il y a eu une discussion sur la méta à ce sujet mais je n'ai pas pu conclure quelle balise gagne.
Mehrdad Afshari

Je suppose que la meilleure façon de décider du gagnant est de regarder les chiffres. La popularité bat la taxonomie sur les sites de réseaux sociaux.
Thilo

Voir aussi: superuser.com/questions/17761/… (légèrement différent, mais peut également être utile).
Jonathan Leffler

Réponses:


12

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

Comme l'a mentionné la barre d'outils, la réponse de Doug Harris n'est que partiellement correcte.

Le fichier Launch Services Database , qui contient toutes les informations de toutes les applications connues et les types de documents qu'elles peuvent gérer, se trouve à 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 /private/var/folders/dossier est l'endroit où les caches «sécurisés» et les dossiers temporaires de chaque utilisateur sont stockés. Les ** dans le chemin indiqué ci-dessus seront 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.csstoreest composé de l'ID utilisateur (le mien est 501) ajouté au -025suffixe, qui est unique à Snow Leopard. (Dans chaque version d'OS X, Apple a tendance à changer le suffixe distinctif utilisé pour éviter les problèmes de compatibilité entre les différentes versions d'OS X. Vous remarquerez que Leopard est utilisé -023). Lion utilise le -034suffixe.


2
El Capitan 10.11.4:$TMPDIR/../0/com.apple.LaunchServices-134$(id -u).csstore
rob mayoff

Mais ce sont des dossiers temporaires. Ceux-ci ne peuvent pas être stockés de manière centralisée.
Melab

1
@Melab: Chaque application sur un système Mac possède un Info.plistfichier ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ) qui décrit ses capacités. Launch Services rassemble toutes ces informations de manière dynamique pour créer la base de données mentionnée ci-dessus. Si le fichier de base de données a été supprimé, Launch Services (en particulier l' lsregisteroutil - ss64.com/osx/lsregister.html ) peut le recréer.
NSGod

En fait, juste à partir du chemin, il semble qu'il soit stocké à côté des dossiers temporaires ( ..signifie "monter d'un niveau").
SilverWolf

18

OS X utilise un système "par défaut" - voici un bel article avec beaucoup d'exemples. Les fichiers sont stockés sous ~ / Library / Preferences, mais il est préférable de manipuler avec la commande "defaults" 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 bien plus d'informations sur les services de lancement en particulier dans le guide de programmation des services de lancement d'Apple


15

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 -dumpvous verrez ce que Launch Services appelle CoreTypeset les associations fournies par les applications qu'il trouve.

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

Je n'ai pas analysé de manière exhaustive 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 là où les types sont énumérés. Les associations que je crois proviennent de l'analyse du contenu de * .app dans des emplacements d'application connus. Voici où Launch Services comprend que TextWrangler est un éditeur 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'
    ...

1
FYI -bash: lsregister: command not foundin Mavericks
Slipp D. Thompson

2
@ SlippD.Thompson regarde attentivement la ligne suivante, le chemin y est spécifié.
Dmitry Ginzburg

2

Peasy facile! C'est juste que ce n'est pas à l'endroit le plus évident:

  • Faites un clic droit sur le fichier dont vous souhaitez modifier l'association et sélectionnez " Obtenir des informations " (ou sélectionnez et appuyez sur Command+I .
  • Descendez à " Ouvre avec " (vous devrez peut-être cliquer sur la flèche à côté de lui pour le développer) et sélectionnez un autre programme dans la liste déroulante.
  • Cliquez sur le bouton " Tout changer ... " pour modifier cette association de fichiers pour tous les fichiers de la même extension sur votre système.

entrez la description de l'image ici

Vous pouvez également sortir et installer le préfiltre RCDefaultApp pour modifier toutes les associations de fichiers en un seul endroit.


3
Avez-vous lu la question? Il s'agissait de savoir où OS X stocke les informations, pas de savoir comment modifier les associations.
Jonik

1
Oui, mais savoir comment les changer aide aussi. Comme si cela m'avait aidé ... @joshhunt: peut-être que si vous expliquiez que le contenu Get Info se trouve dans le Finder avec le fichier sélectionné. (Il suffit d'annuler une application en saisissant les fichiers d'une autre - cela a aidé.)
Jonathan Leffler

@LauriRanta vous avez absolument raison, en fait, après avoir posté cela, je voulais le supprimer, mais je ne l'ai pas trouvé!
ocodo

-3

~/Library/Preferences/com.apple.LaunchServices.plist

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.