Mac OS X 将文件关联存储在哪里(每个文件)

Mac OS X 将文件关联存储在哪里(每个文件)

当我打开文件信息并更改负责该文件的应用程序时,此覆盖存储在系统的什么位置?

答案1

数据被存储在文件的资源分支中,以扩展属性的形式保存com.apple.ResourceFork

以以下为例 -

使用终端,创建一个测试文件,命名为“test.txt”

System:~ user$ touch test.txt

默认情况下,使用“txt”扩展名文件打开文本編輯(除非您修改了系统范围的默认值。)在发现者,将关联更改为其他内容。返回到终端..

 System:~ user$ ls -l@ test.txt

 -rw-r--r--@ 1 user  staff  0 Sep 29 11:21 test.txt
         com.apple.ResourceFork 1338

@符号表示该文件具有扩展属性,并将ls -l@该属性列为长格式的一部分。

如果您安装了开发工具,您可以用它DeRez来检查资源分支,您将看到您在分支中选择的应用程序的路径。

它已经过时、被弃用,并且可以(正确地)被称为黑客...但鉴于 UTI 和捆绑包标识符系统“不完整”,所以 Apple 使用它。

答案2

我不确定 Mac OS X 是否如此,但 Mac OS(即 Classic)过去会将其存储在每个文件的资源分支中,其中包含两条信息:类型代码和创建者代码。两者都是四字节序列,因此通常呈现为四个字符串。类型代码识别文件的类型(例如,TEXT 表示文本文件,APPL 表示应用程序),而创建者代码标识创建文件的应用程序(例如,ttxt 表示 SimpleText,MSWD 表示 Microsoft Word)。因此,默认情况下,SimpleText 创建的文件将在 SimpleText 中打开,同时仍被标识为文本文件,因此与 Microsoft Word 兼容,如果您选择手动使用 Word 打开它。

Snow Leopard 不再关注类型和创建者代码,而是用泌尿道感染,它们让人想起 MIME 类型,尽管更灵活,并且可以用于指定默认程序以及确定哪些程序与给定文件兼容,但我不确定如何完成单独的覆盖。

相关内容