In Finder.app können Sie auf drücken, Enterum den Namen der aktuell ausgewählten Datei oder des Ordners zu bearbeiten.
OS X wählt automatisch nur den Teil des Dateinamens 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 eine versehentliche Änderung 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 bekomme immer noch das oben beschriebene Verhalten.
Wo wird die Liste der „bekannten“ Dateitypen gespeichert? Gibt es eine Möglichkeit, OS X dazu zu bringen, neue Dateitypen zu erkennen?
Dieser SuperUser-Beitrag hat bei mir funktioniert:
Sie müssen zu der Anwendung navigieren, die Sie zum Öffnen dieser Dateien verwenden möchten, und ihr Bundle bearbeiten. Klicken Sie mit der rechten Maustaste auf die Anwendung, um diese Dateierweiterungen zu verarbeiten, und wählen Sie Paketinhalt anzeigen aus . Navigieren Sie zu
Contents
und bearbeiten SieInfo.plist
. Möglicherweise benötigen Sie den Property List Editor , der Teil der Entwicklertools von Apple ist. Wenn Sie Glück haben, ist es im XML-Format. Bearbeiten Sie diese DateiCFBundleDocumentTypes
und fügen Sie einen Eintrag für die gewünschte Erweiterung hinzu.
Ich habe TextEdit als Standardanwendung zum Öffnen von .bar
Dateien verwendet. Das einzige, was ich anders gemacht habe, war, das XML in TextEdit Info.plist
zu ändern:
<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>
… und dann habe ich LSRefresh.app verwendet , um TextEdit in der Launch Services-Datenbank zu aktualisieren. Dann hat es wie von Ihnen vorgeschlagen funktioniert, obwohl es wahrscheinlich die Code-Signatur von Textedit (und jeder anderen signierten Anwendung) auf Lion brechen wird.
Wo wird die Liste der „bekannten“ Dateitypen gespeichert?
Der offizielle Begriff für „Dateitypen“ ist Uniform Type Identifiers (UTIs), und die Datenbank der UTIs wird von Launch Services verwaltet .
Mit dem Terminal können Sie den Inhalt der Launch Services-Datenbank mit dem lsregister
Tool anzeigen, das unter folgender Adresse gespeichert ist:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister
Anstatt diesen langen Pfad jedes Mal anzugeben, wenn Sie ausführen möchten lsregister
, können Sie sein Verzeichnis vorübergehend zu Ihrem hinzufügen PATH
:
PATH=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:"$PATH"
und dann können Sie ausführen, lsregister
indem Sie einfach eingeben:
lsregister
So zeigen Sie den Inhalt der Launch Services-Datenbank an:
lsregister -dump
Gibt es eine Möglichkeit, OS X dazu zu bringen, neue Dateitypen zu erkennen?
Dieser Apple-Artikel „Declaring New Uniform Type Identifiers“ enthält nützliche Informationen dazu. Hier ist der vollständige Prozess:
Erstellen Sie eine Dummy-Anwendung, um sich bei Launch Services zu registrieren:
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:
<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>
folgende Änderungen vornehmen:
KEY
durch den von Ihnen gewählten Schlüssel (entweder UTExportedTypeDeclarations
oder UTImportedTypeDeclarations
).IDENTIFIER
durch eine geeignete Reverse-DNS-Kennung:
com.mycompany.mytype
com.idsoftware.wad
EXTENSION
durch die Dateinamenerweiterung (ohne den führenden Punkt), zB: wad
.Dies ist der Mindestcode, der für Launch Services erforderlich ist, um Ihre neue UTI zu akzeptieren. Sie können auch die folgenden optionalen Eigenschaften hinzufügen:
UTTypeConformsTo
– Siehe Anhang unten.UTTypeDescription
– Eine für den Benutzer sichtbare Beschreibung, die im Finder angezeigt wird.UTTypeIconFile
– Wenn Sie eine Apple Icon Image -Datei zum Ordner „ Contents/Resources “ 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, das alle optionalen Eigenschaften zeigt:
<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>
Führen Sie diesen Befehl im Terminal aus:
lsregister <PATH_TO_APP>
Ersetzen <PATH_TO_APP>
durch den Pfad zu Ihrer Dummy-Anwendung, z. B.:
lsregister ~/Desktop/MyDummyApp.app
Wenn Sie jetzt eine Datei mit Ihrer neuen Dateinamenerweiterung erstellen und sie dann im Finder auswählen und auf Enterdrücken, sollte der Finder automatisch nur den Dateinamensteil auswählen, nicht die Erweiterung.
Wenn Sie den Inhalt der Launch Services-Datenbank anzeigen:
lsregister -dump
Sie sollten Ihre neue UTI aufgelistet finden:
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
Wenn Sie Ihre neue UTI später abmelden möchten, übergeben Sie die -u
Option an lsregister
:
lsregister -u ~/Desktop/MyDummyApp.app
OS X deklariert eine Hierarchie von UTIs, die hier aufgelistet sind: System-Declared Uniform Type Identifiers .
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:
Beispielsweise
public.html
entspricht die UTI , die HTML-Text definiert, dem Basistextbezeichnerpublic.text
. In diesem Fall ermöglicht die Konformität Anwendungen, die allgemeine Textdateien öffnen können, HTML-Dateien als solche zu identifizieren, die sie ebenfalls öffnen können. ( Referenz )
Beim Erstellen einer neuen UTI empfiehlt es sich, die UTTypeConformsTo
Eigenschaft auf eine der vorhandenen UTIs festzulegen.
Wenn Ihre neue UTI beispielsweise eine Art Quellcode ist, sollten Sie die UTTypeConformsTo
Eigenschaft auf setzen public.source-code
, damit sie von allen Anwendungen geöffnet werden kann, die public.source-code
oder public.plain-text
oder public.text
Dateien öffnen können.
Folge diesen Schritten:
Wählen Sie die Datei mit unbekannter Erweiterung (z . B. .txt
).
Klicken Sie mit der rechten Maustaste und wählen Sie Get Info
oder verwenden Sie die Tastenkombination Commandi, um das Informationsfenster anzuzeigen.
Klicken Sie auf den Offenlegungsindikator neben Öffnen mit:, um die Detailansicht zu öffnen. Wählen Sie die gewünschte App aus der Dropdown-Liste aus. Dadurch wird das Dokument mit der gewählten Anwendung (z. B. TextEdit) verknüpft.
Klicken Sie auf die Schaltfläche Alle ändern.... Es zeigt zunächst ein Dialogfeld an, in dem Sie aufgefordert werden, Ihre Absicht zu bestätigen, und verknüpft alle .txt
Dokumente, die mit TextEdit geöffnet werden sollen, und lässt die Erweiterung nicht ausgewählt, wenn Sie beim Namen des Dokuments die Eingabetaste drücken.
TachyonVortex
CFBundleTypeExtensions
ist ein Legacy-Schlüssel, der in OS X 10.5 veraltet ist . Die bevorzugte Methode seit 2007 besteht darin, neue UTIs zu deklarieren, wie hier erwähnt und in meiner Antwort beschrieben .Bob
Schrittmacher
xxx.bar
und wählstopen with
?Schrittmacher
Bob
Gwyneth Llewelyn