In Finder.app können Sie Enterden Namen der aktuell ausgewählten Datei oder des aktuell ausgewählten Ordners bearbeiten.
OS X wählt automatisch nur den Dateinamen-Teil aus, nicht die Erweiterung:
Dies ist sehr nützlich, da Sie auf diese Weise einfach mit der Eingabe des neuen Namens beginnen können, ohne sich Gedanken über ein versehentliches Ändern der Dateierweiterung machen zu müssen.
Dies scheint jedoch nur für „bekannte“ Dateitypen zu funktionieren. Wenn Sie es mit einer unbekannten Erweiterung versuchen, wird der gesamte Dateiname (einschließlich der Erweiterung) ausgewählt:
Ich habe versucht, eine Anwendung zuzuordnen, die alle .bar
Dateien über ⌘+ I→ "Alle ändern" öffnen kann , aber ich erhalte immer noch das oben beschriebene Verhalten.
Wo ist die Liste der "bekannten" Dateitypen gespeichert? Gibt es eine Möglichkeit, OS X dazu zu bringen, neue Dateitypen zu erkennen?
CFBundleTypeExtensions
ist ein Legacy-Schlüssel, der in OS X 10.5 veraltet ist . Die bevorzugte Methode seit 2007 ist die Deklaration neuer HWI, wie hier erwähnt und in meiner Antwort beschrieben .xxx.bar
und wählst sie ausopen with
?UTIs und Launch Services
Der offizielle Begriff für "Dateitypen" lautet " Uniform Type Identifiers" (UTIs), und die Datenbank der UTIs wird von Launch Services verwaltet .
Über das Terminal können Sie den Inhalt der Launch Services-Datenbank mit dem folgenden
lsregister
Tool anzeigen :Anstatt diesen langen Pfad jedes Mal anzugeben, wenn Sie ihn ausführen möchten
lsregister
, können Sie sein Verzeichnis vorübergehend zu Ihrem Verzeichnis hinzufügenPATH
:und dann können Sie laufen,
lsregister
indem Sie einfach Folgendes eingeben:So zeigen Sie den Inhalt der Launch Services-Datenbank an:
Neue HWI deklarieren
Dieser Apple-Artikel "Deklarieren neuer einheitlicher Typkennungen" enthält nützliche Informationen dazu. Hier ist der gesamte Prozess:
1. Erstellen Sie eine Dummy-Anwendung
Erstellen Sie eine Dummy-Anwendung, um sich bei Launch Services zu registrieren:
2. Öffnen Sie die Datei Info.plist
3. Fügen Sie Ihre neue UTI hinzu
Es stehen zwei Schlüssel zur Auswahl:
UTExportedTypeDeclarations
- für Ihre eigenen benutzerdefinierten Dateinamenerweiterungen.UTImportedTypeDeclarations
- für Dateinamenerweiterungen, die bereits vorhanden sind, aber von OS X nicht erkannt werden.Wählen Sie den Schlüssel, der Ihren Anforderungen am besten entspricht.
Fügen Sie dann in der Datei Info.plist vor den letzten beiden Zeilen (
</dict></plist>
) diesen Code hinzu:Folgende Änderungen vornehmen:
KEY
durch den von Ihnen gewählten Schlüssel (entwederUTExportedTypeDeclarations
oderUTImportedTypeDeclarations
).IDENTIFIER
eine geeignete Reverse-DNS-Kennung ersetzen :com.mycompany.mytype
com.idsoftware.wad
EXTENSION
durch die Dateinamenerweiterung (ohne den führenden Punkt), zwad
.Dies ist der Mindestcode, den Launch Services benötigt, um Ihre neue UTI zu akzeptieren. Sie können auch die folgenden optionalen Eigenschaften hinzufügen:
UTTypeConformsTo
- Siehe Anhang unten.UTTypeDescription
- Eine vom Benutzer sichtbare Beschreibung, die im Finder angezeigt wird.UTTypeIconFile
- Wenn Sie eine Apple Icon Image- Datei zum Ordner " Inhalt / Ressourcen " in Ihrer Dummy-Anwendung hinzufügen und ihren Dateinamen in dieser Eigenschaft hinzufügen, verwenden Dateien mit Ihrer neuen Dateinamenerweiterung dieses Symbol.UTTypeReferenceURL
- Die URL eines Referenzdokuments, das diesen Typ beschreibt.Hier ist ein vollständiges Beispiel mit allen optionalen Eigenschaften:
4. Registrieren Sie Ihre neue UTI bei Launch Services
Führen Sie diesen Befehl im Terminal aus:
Ersetzen
<PATH_TO_APP>
durch den Pfad zu Ihrer Dummy-Anwendung, z.Wenn Sie jetzt eine Datei mit Ihrer neuen Dateinamenerweiterung erstellen und diese dann im Finder auswählen und drücken Enter, sollte der Finder automatisch nur den Dateinamen-Teil auswählen, nicht die Erweiterung.
Wenn Sie den Inhalt der Launch Services-Datenbank anzeigen:
Sie sollten Ihre neue UTI aufgelistet finden:
Wenn Sie später die Registrierung Ihrer neuen UTI aufheben möchten, übergeben Sie die
-u
Option anlsregister
:Anhang: UTI-Hierarchie und Konformität
OS X deklariert eine Hierarchie von UTIs, die hier aufgelistet sind: Systemdeklarierte einheitliche Typkennungen .
Hier sind einige UTIs in der Hierarchie:
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
Jede UTI "entspricht" ihrer übergeordneten UTI:
Wenn Sie eine neue UTI erstellen,
UTTypeConformsTo
empfiehlt es sich, die Eigenschaft auf eine der vorhandenen UTIs festzulegen.Wenn Ihre neue UTI beispielsweise eine Art Quellcode ist, sollten Sie die
UTTypeConformsTo
Eigenschaft auf festlegenpublic.source-code
, damit sie von allen Anwendungen geöffnet werden kann, diepublic.source-code
oderpublic.plain-text
oderpublic.text
Dateien öffnen können.quelle
Folge diesen Schritten:
Wählen Sie die Datei mit der nicht erkannten Erweiterung aus (z. B.
.txt
).Klicken Sie
Get Info
mit der rechten Maustaste und wählen Sie die Tastenkombination aus oder verwenden Sie sie Commandi, um das Informationsfenster anzuzeigen.Klicken Sie neben Öffnen mit: auf den Offenlegungsindikator , um die Detailansicht zu öffnen. Wählen Sie die gewünschte App aus der Dropdown-Liste. Dadurch wird das Dokument der ausgewählten Anwendung zugeordnet (z. B. TextEdit).
Klicken Sie auf die Schaltfläche Alle ändern ... Es wird zunächst ein Dialogfeld angezeigt, in dem Sie aufgefordert werden, Ihre Absicht zu bestätigen, und alle
.txt
zu öffnenden Dokumente mit TextEdit verknüpft. Die Erweiterung wird nicht ausgewählt, wenn Sie die Eingabetaste für den Namen des Dokuments drücken.quelle