Reprenant la réponse de Daniel Beck ci-dessus, ces informations sont en effet stockées dans la fourchette de ressources du fichier. Apple fournit deux utilitaires, appelés "Rez" et "DeRez" avec les outils de développement, qui vous permettent de manipuler les fourchettes de ressources. En particulier, vous pouvez pousser une fourchette de ressources dans un fichier avec Rez.
Pour modifier l'association d'un seul fichier à partir de la ligne de commande, créez d'abord un fichier du bon type et modifiez manuellement son association à l'application dans laquelle vous souhaitez qu'il s'ouvre. Cela crée la fourchette de ressources dans le fichier - si vous ne le faites pas ' Pour ce faire, il n'y aura aucune information à copier. Ensuite, retirez la fourchette de ressources avec DeRez, comme ceci (en supposant un fichier foo.txt et que l'application que vous souhaitez utiliser est Firefox.app).
DeRez foo.txt > foo.r
Cela va créer un fichier appelé foo.r qui est la fourche de ressource décompilée en tant que fichier texte. Cela ressemblera à ceci:
data 'usro' (0) {
$"0000 001A 2F41 7070 6C69 6361 7469 6F6E" /* ..../Application */
$"732F 4669 7265 666F 782E 6170 7000 0000" /* s/Firefox.app... */
$"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
Vous pouvez le modifier si vous souhaitez en créer un à partir de zéro, mais vous devez obtenir le format exact ou cela ne fonctionnera pas. Ce ne sont que des caractères hexadécimaux décrivant le chemin d'accès au bundle d'application que vous souhaitez, terminé par un zéro.
Vous pouvez voir un message indiquant que la fourchette de ressources est vide et non initialisée. Si tel est le cas, vous n'avez pas modifié l'association par fichier sur le fichier source, vous devez donc procéder, puis réexécuter la commande DeRez.
Une fois que vous avez cela, vous pouvez le pousser dans un autre fichier comme suit (en supposant que bar.txt existe):
Rez foo.r -a -o bar.txt
Cela met à jour bar.txt en place avec la fourchette de ressources de foo.r.
Pour vérifier que cela a bien fonctionné, puisque ni Rez ni DeRez n'impriment de messages d'erreur, faites simplement ceci:
DeRez bar.txt
Vous devriez voir les mêmes informations qu'auparavant. Après tout cela, ouvrez simplement le fichier bar.txt comme vous le feriez normalement, et il devrait s'ouvrir dans la bonne application, pas celle par défaut.
Pour effectuer un changement de lot, une fois que vous avez le fichier .r, vous pouvez utiliser une extension générique standard comme celle-ci:
Rez foo.r -a -o *.txt
Cela fera tous les fichiers qui correspondent au caractère générique.
J'ai fait cela sur 10.7, mais je crois comprendre que cela fonctionne aussi sur les machines antérieures.