我只是好奇 Mac 应用程序如何自动将文件类型与它们关联起来。更具体地说,如果使用拖放方法安装应用程序,那么它如何自动将某些文件类型与其关联?例如,如果我有一个与 QuickTime 关联的 AVI 文件,然后我下载 VLC,将其拖到我的应用程序文件夹中,最后打开该文件,它将使用 VLC 打开。我理解安装程序包如何发生这种情况,但不太明白拖动文件如何创建这种关联。
答案1
它基于统一类型标识符。Mac OS X 的一个组件 LaunchServices 维护着 UTI 到应用程序的映射(每个应用程序都会声明其可以支持的 UTI)。请注意,UTI 是分层的,因此如果一个应用程序声称支持 ZIP 文件,而另一个应用程序声称支持存档,则它们都可以打开 ZIP 文件。
答案2
简而言之,应用程序在 .app 包中存储的 Info.plist 文件中声明它们可以打开哪些类型。当应用程序被打开或复制时,Finder 会读取此信息并将其报告给 OS X 的启动服务数据库。