我知道 Mac OS X Leopard 中有一个系统偏好设置窗格可以手动修改文件关联。但是,我很好奇 Leopard 实际上将这些信息存储在哪里?
我对更改它们的方法不感兴趣。我想知道存储这些映射的配置文件或数据库(如 Windows 中的注册表)。
答案1
抱歉,这个问题很老了,但答案确实是错误的。
正如 toolbear 提到的,Doug Harris 的回答只是部分正确。
这发射服务数据库文件,即全部的信息全部已知应用程序及其可以处理的文档类型存储于以下位置:
狮子:
/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-034501.csstore
雪豹:
/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-025501.csstore
豹:
/Library/Caches/com.apple.LaunchServices-023501.csstore
该/private/var/folders/
文件夹是存储每个用户的“安全”缓存和临时文件夹的地方。上面显示的路径中的 ** 将类似于/dl/dlXWtS5WH9SNboPxxrDIyE+++TI/
,或其他模糊的字符序列,以防止猜测。
请注意,名称com.apple.LaunchServices-025501.csstore
由用户 ID(我的是501
)加上-025
后缀组成,这是 Snow Leopard 独有的。(在每个版本的 OS X 中,Apple 往往会更改所使用的区分后缀,以防止不同版本的 OS X 之间出现兼容性问题。您会注意到 Leopard 使用的是-023
)。Lion 使用的是 -034
后缀。
答案2
答案3
@Doug Harris 的回答只是部分正确。默认系统会存储您对文件关联的本地添加或覆盖。但是,OS X 附带一些默认的系统范围关联。
如果您运行,lsregister -dump
您将看到启动服务调用的内容CoreTypes
以及它找到的应用程序提供的关联。
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump
我没有彻底扫描输出。该转储中可能还有其他来源,但这些类型中的很大一部分来自/System/Library/CoreServices/CoreTypes.bundle
。其中可能有一个纯文本或 plist 文件,其中枚举了类型。我相信关联来自扫描已知应用程序位置中的 *.app 内容。这是 Launch Services 了解 TextWrangler 是多种文件类型的编辑器的地方:
--------------------------------------------------------------------------------
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'
...
答案4
~/Library/Preferences/com.apple.LaunchServices.plist