Mac OS X 将文件关联信息存储在哪里?

Mac OS X 将文件关联信息存储在哪里?

我知道 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

OS X 使用“默认”系统——这是好文章包含大量示例。文件存储在 ~/Library/Preferences 下,但最好使用“defaults”命令进行操作,而不是直接编辑 plist。

文件关联存储在 com.apple.LaunchServices 域下。从上面的链接,您可以使用以下命令查看列表:

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

有关启动服务的更多信息,请参阅苹果的启动服务编程指南

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

相关内容