Wo speichert Mac OS X Informationen zur Dateizuordnung?

41036
Mehrdad Afshari

Ich weiß, dass es einen Systemeinstellungsbereich gibt, um die Dateizuordnungen in Mac OS X Leopard manuell zu ändern. Ich bin jedoch gespannt, wo Leopard diese Informationen speichert.

Ich bin nicht an Methoden interessiert, um sie zu ändern. Ich möchte die Konfigurationsdatei oder Datenbank (wie die Registrierung in Windows) wissen, in der diese Zuordnungen gespeichert sind.

19
einige bitte kennzeichnen Sie diese mit "mac" und "osx" (diese Tags werden häufiger verwendet) Thilo vor 14 Jahren 0
Es gab eine Diskussion über Meta, aber ich konnte nicht sagen, welcher Tag gewinnt. Mehrdad Afshari vor 14 Jahren 0
Ich denke, der beste Weg, um den Gewinner zu entscheiden, ist, sich die Zahlen anzusehen. Die Popularität übertrifft die Taxonomie auf Websites sozialer Netzwerke. Thilo vor 14 Jahren 0
Siehe auch: http://superuser.com/questions/17761/file-association-for-editing-on-a-mac (etwas anders, kann aber auch hilfreich sein). Jonathan Leffler vor 14 Jahren 0

5 Antworten auf die Frage

16
Doug Harris

OS X verwendet ein "Standard" -System - hier ist ein schöner Artikel mit vielen Beispielen. Die Dateien werden unter ~ / Library / Preferences gespeichert. Am besten können Sie sie mit dem Befehl "defaults" bearbeiten, anstatt die plists direkt zu bearbeiten.

Dateizuordnungen werden unter der Domäne com.apple.LaunchServices gespeichert. Über den Link oben können Sie die Liste mit diesem Befehl anzeigen:

defaults read com.apple.LaunchServices | grep -v LSBundleLocator 

Weitere Informationen zu Launch Services finden Sie im Apple- Launch Services-Programmierhandbuch

12
toolbear74

@Doug Harris' answer is only partially correct. The defaults system stores your local additions or overrides to the file associations. However, OS X comes with some default, system wide associations.

If you run lsregister -dump you'll see what Launch Services calls CoreTypes and the associations provided by applications it finds.

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

I haven't exhaustively scanned the output. There may be others sources indicated in that dump, but a large number of these types come from /System/Library/CoreServices/CoreTypes.bundle. There may be a plaintext or plist file in there where the types are enumerated. The associations I believe come from scanning the contents of *.app in known application locations. Here's where Launch Services understands TextWrangler is an editor to numerous file types:

-------------------------------------------------------------------------------- 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' ... 
FYI `-bash: lsregister: Befehl nicht gefunden` in Mavericks Slipp D. Thompson vor 10 Jahren 1
@SlippD.Thompson schaut genau in die nächste Zeile, der Pfad wird dort angegeben. Dmitry Ginzburg vor 9 Jahren 1
9
NSGod

Entschuldigung, diese Frage ist alt, aber die Antwort ist wirklich falsch.

Wie von Toolbear erwähnt, ist die Antwort von Doug Harris nur teilweise richtig.

Die Launch Services Database- Datei, in der alle Informationen für alle bekannten Anwendungen und die Arten von Dokumenten gespeichert sind, die sie verarbeiten können, befindet sich an folgendem Speicherort:

Löwe:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-034501.csstore

Schneeleopard:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-025501.csstore

Leopard:

/Library/Caches/com.apple.LaunchServices-023501.csstore

In diesem /private/var/folders/Ordner werden die "sicheren" Caches und temporären Ordner für jeden Benutzer gespeichert. Die ** in dem oben gezeigten Pfad sind so etwas /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/oder eine andere obskure Zeichenfolge, um das Erraten zu verhindern.

Beachten Sie, dass sich der Name com.apple.LaunchServices-025501.csstoreaus der Benutzer-ID (meine ist 501) zusammensetzt, die an das -025Suffix angehängt wird, das für Snow Leopard eindeutig ist. (In jeder Version von OS X neigt Apple dazu, das Unterscheidungssuffix zu ändern, das verwendet wird, um Kompatibilitätsprobleme zwischen verschiedenen Versionen von OS X zu vermeiden. Sie werden feststellen, dass Leopard verwendet hat -023). Löwe benutzt das -034Suffix.

El Capitan 10.11.4: `$ TMPDIR /../ 0 / com.apple.LaunchServices-134 $ (id -u) .csstore` rob mayoff vor 7 Jahren 2
Aber das sind temporäre Ordner. Die können nicht dort sein, wo sie zentral gespeichert werden. Melab vor 7 Jahren 0
@ Melab: Jede Anwendung auf einem Mac-System hat eine `Info.plist`-Datei (https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html), in der die Funktionen beschrieben werden . Launch Services sammelt alle diese Informationen dynamisch, um die oben erwähnte Datenbank zu erstellen. Wenn die Datenbankdatei entfernt wurde, können Launch Services (insbesondere das `lsregister`-Tool - http://ss64.com/osx/lsregister.html) es neu erstellen. NSGod vor 7 Jahren 0
Tatsächlich sieht es so aus, als würde es aus dem Pfad _alongside_ den temporären Ordnern gespeichert werden (`..` bedeutet" eine Ebene höher "). SilverWolf vor 6 Jahren 0
3
Josh Hunt

Kinderleicht! Es ist nur so, dass es nicht am naheliegendsten Ort ist:

  • Klicken Sie mit der rechten Maustaste auf die Datei, für die Sie die Zuordnung ändern möchten, und wählen Sie " Get Info " (oder wählen Sie einfach Command+ ausI und drücken Sie + .
  • Gehen Sie nach unten zu " Öffnet mit " (Sie müssen möglicherweise auf den Pfeil daneben klicken, um ihn zu erweitern) und wählen Sie ein anderes Programm aus der Dropdown-Liste aus.
  • Klicken Sie auf die Schaltfläche " Alle ändern ... ", um diese Dateizuordnung für alle Dateien derselben Erweiterung in Ihrem System zu ändern.

Sie können auch RCDefaultApp prefpane installieren, um alle Dateizuordnungen an einer Stelle zu ändern.

Hast du die Frage gelesen? Es ging darum, wo OS X die Informationen speichert, und nicht, wie man die Assoziationen ändert. Jonik vor 14 Jahren 3
Ja, aber zu wissen, wie man sie ändert, hilft auch. Wie es für mich geholfen hat ... @joshhunt: Vielleicht, wenn Sie deutlich gemacht haben, dass der Get Info-Zeiger mit der ausgewählten Datei im Finder ist. (Es musste nur eine Anwendung rückgängig gemacht werden, die sich die Dateien einer anderen Person schnappte - das half.) Jonathan Leffler vor 14 Jahren 1
@LauriRanta Du hast absolut recht, nachdem ich das gepostet habe, wollte ich es löschen, aber ich konnte es nicht finden! ocodo vor 11 Jahren 0
-1
Nate

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