26 votes

Comment faire pour qu'OS X reconnaisse les nouvelles extensions de fichiers ?

Dans Finder.app, vous pouvez cliquer sur Enter pour modifier le nom du fichier ou du dossier actuellement sélectionné.

OS X ne sélectionnera automatiquement que la partie du nom de fichier, pas l'extension :

C'est très utile, car vous pouvez ainsi commencer à taper le nouveau nom, sans craindre de modifier accidentellement l'extension du fichier.

Cependant, cela ne semble fonctionner que pour les types de fichiers "connus". Si vous essayez avec une extension inconnue, le nom entier du fichier (y compris l'extension) est sélectionné :

J'ai essayé de cartographier une application qui peut ouvrir tous les .bar fichiers via + I "Changer tout", mais j'obtiens toujours le comportement décrit ci-dessus.

Où est stockée la liste des types de fichiers "connus" ? Y a-t-il un moyen de faire en sorte qu'OS X reconnaisse de nouveaux types de fichiers ?

44voto

TachyonVortex Points 568

UTIs et services de lancement

Où est stockée la liste des types de fichiers "connus" ?

Le terme officiel pour "types de fichiers" est Identificateurs de type uniforme (UTIs), et la base de données des UTIs est maintenue par Services de lancement .

Utilisation de la Terminal , vous pouvez visualiser le contenu de la base de données des services de lancement à l'aide de la commande lsregister qui est stocké à :

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

Au lieu de spécifier ce long chemin à chaque fois que vous voulez exécuter le programme lsregister vous pouvez ajouter temporairement son répertoire à votre PATH :

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

et ensuite vous pouvez exécuter lsregister en entrant simplement :

lsregister

Pour afficher le contenu de la base de données des services de lancement :

lsregister -dump

Déclarer les nouvelles infections urinaires

Existe-t-il un moyen de faire en sorte qu'OS X reconnaisse les nouveaux types de fichiers ?

Cet article d'Apple, "Déclarer de nouveaux identificateurs de type uniforme" , fournit des informations utiles sur la manière de procéder. Voici le processus complet :

1. Créez une application fictive

Créez une application fictive à enregistrer auprès des services de lancement :

  • Ouvrir Éditeur AppleScript (situé dans le dossier Utilitaires dossier).
  • Enregistrez un nouveau script vide quelque part (par exemple, sur votre bureau), en définissant son paramètre Format de fichier à Application .

2. Ouvrez son fichier Info.plist

  • Localisez votre nouvelle application fictive dans le Finder.
  • Cliquez dessus avec le bouton droit de la souris et sélectionnez Contenu de l'emballage du spectacle dans le menu contextuel.
  • Ouvrir son Contenu dossier.
  • Ouvrez le Info.plist dans un éditeur de texte (ex : TextEdit ).

3. Ajoutez votre nouvelle UTI

Il y a un choix de deux clés :

  • UTExportedTypeDeclarations - pour vos propres extensions de nom de fichier personnalisées.
  • UTImportedTypeDeclarations - pour les extensions de nom de fichier qui existent déjà mais qui ne sont pas reconnues par OS X.

Choisissez la clé qui convient le mieux à vos besoins.

Ensuite, dans le Info.plist avant les deux dernières lignes ( </dict></plist> ), ajoutez ce code :

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

en effectuant les changements suivants :

  • Remplacer KEY avec la clé de votre choix (soit UTExportedTypeDeclarations o UTImportedTypeDeclarations ).
  • Remplacer IDENTIFIER avec un identifiant reverse-DNS approprié :
    • Exporter - Quelque chose comme com.mycompany.mytype
    • Importé - Pour Logiciel id 's Doom WAD un identifiant approprié serait com.idsoftware.wad
  • Remplacer EXTENSION avec l'extension du nom de fichier (sans le point de tête), par ex : wad .

Il s'agit du code minimum nécessaire pour que les services de lancement acceptent votre nouvelle UTI. Vous pouvez également ajouter les propriétés facultatives suivantes :

  • UTTypeConformsTo - Voir l'annexe ci-dessous.
  • UTTypeDescription - Une description visible par l'utilisateur, qui sera affichée dans le Finder.
  • UTTypeIconFile - Si vous ajoutez un Image d'icône d'Apple vers le fichier Contenu/Ressources dans votre application fictive, et ajoutez son nom de fichier dans cette propriété, alors les fichiers qui ont votre nouvelle extension de nom de fichier utiliseront cette icône.
  • UTTypeReferenceURL - L'URL d'un document de référence décrivant ce type.

Voici un exemple complet montrant toutes les propriétés optionnelles :

<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. Enregistrez votre nouvelle UTI auprès des services de lancement

Exécutez cette commande dans le Terminal :

lsregister <PATH_TO_APP>

remplacement de <PATH_TO_APP> avec le chemin de votre application fictive, par exemple :

lsregister ~/Desktop/MyDummyApp.app

Si vous créez maintenant un fichier avec votre nouvelle extension de nom de fichier, que vous le sélectionnez dans le Finder et appuyez sur Enter le Finder devrait automatiquement sélectionner uniquement la partie du nom de fichier, et non l'extension.

Si vous visualisez le contenu de la base de données des services de lancement :

lsregister -dump

vous devriez trouver votre nouvelle UTI listée :

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 vous souhaitez par la suite désenregistrer votre nouvelle UTI, passez la fonction -u option pour lsregister :

lsregister -u ~/Desktop/MyDummyApp.app

Annexe : Hiérarchie et conformité des UTI

OS X déclare une hiérarchie d'UTIs qui sont listées ici : Identificateurs de type uniforme déclarés par le système .

Voici quelques exemples d'infections urinaires dans la hiérarchie :

  • 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

Chaque UTI est "conforme" à son UTI mère :

Par exemple, l'UTI public.html qui définit le texte HTML, est conforme à la norme identificateur de texte de base, public.text . Dans ce cas, la conformité permet aux applications qui peuvent ouvrir des fichiers texte généraux d'identifier les fichiers HTML comme étant ceux qu'ils peuvent également ouvrir. ( réf. )

Lors de la création d'une nouvelle UTI, il est bon de définir le paramètre UTTypeConformsTo à l'une des UTIs existantes.

Par exemple, si votre nouvelle UTI est un type de code source, alors vous devez définir l'élément UTTypeConformsTo à la propriété public.source-code , de sorte qu'il puisse être ouvert par toutes les applications qui peuvent ouvrir public.source-code o public.plain-text o public.text des fichiers.

8voto

binarybob Points 9292

Ce site Poste de SuperUser a fonctionné pour moi :

Vous devez naviguer jusqu'à l'application que vous souhaitez utiliser pour ouvrir ces fichiers, et modifier son paquet. Cliquez avec le bouton droit de la souris sur l'application qui doit gérer ces extensions de fichiers et sélectionnez Contenu de l'emballage du spectacle . Naviguez jusqu'à Contents et modifier Info.plist . Vous pourriez avoir besoin Éditeur de liste de propriétés qui fait partie des outils de développement d'Apple. Si vous avez de la chance, il est au format XML. Modifiez le fichier CFBundleDocumentTypes et ajoutez une entrée pour l'extension que vous voulez.

J'ai utilisé TextEdit comme application par défaut pour ouvrir .bar des dossiers. La seule chose que j'ai faite différemment, c'est de changer le XML qui se trouve dans la fenêtre de TextEdit. Info.plist à :

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

et ensuite j'ai utilisé LSRefresh.app pour rafraîchir TextEdit dans la base de données des services de lancement. Ensuite, cela a fonctionné comme vous l'avez suggéré, bien que cela casse probablement la signature de code de Textedit (et de toute autre application signée) sur Lion.

2voto

user3127882 Points 119

Suivez les étapes suivantes :

  1. Sélectionnez le fichier dont l'extension n'est pas reconnue (disons, .txt ).

  2. Cliquez à droite et sélectionnez Get Info ou utilisez le raccourci clavier Commandi pour afficher la fenêtre d'information.

  3. Cliquez sur l'indicateur de divulgation en plus Ouvrir avec : pour ouvrir la vue détaillée. Sélectionnez l'application souhaitée dans la liste déroulante. Cela permettra d'associer le document à l'application choisie (par exemple TextEdit).

  4. Cliquez sur le Changez tout... bouton. Il affichera d'abord une boîte de dialogue vous demandant de confirmer votre intention et reliera tous les sites de l'UE. .txt pour ouvrir les documents avec TextEdit, et laissez l'extension non sélectionnée lorsque vous appuyez sur la touche retour du nom du document.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X