我知道在Mac OS X中不推荐使用资源分支。
目前尚不清楚不太知名和少用的命名叉是否也被弃用。 HFS +实际上支持任意文件的任意数量的任意长度分叉。 (Mac的命名分支在概念上类似于Windows的备用数据流或“ADS”。)
已弃用或尚未弃用仍有理由学习创建,枚举,删除和操作文件叉。
然而,我似乎无法找到有关使用forks的API的任何信息。
我可以找到的是,从终端和可能接受文件名或路径的其他地方,您可以使用语法<filename>/..namedfork/rsrc
访问资源分支,直到最近还<filename>/rsrc
。我尝试用其他名称替换rsrc
,但我在终端尝试的所有命令都失败了。
在哪里可以找到关于API的旧的或非官方的文档,以编程方式在OS X中使用命名的forks?
顺便说一下,谷歌搜索这个话题时,互联网上似乎存在一个常见的误解。随机投注者说,命名分支是建立在命名文件属性上的。事实并非如此。命名文件属性是一个相当新的OS X功能。命名分支早于OS X.事实上,命名文件属性似乎可以在幕后使用命名分支。
在任何情况下,请不要提交有关命名文件属性的答案。我特意寻找有关任意命名叉的信息。
答案 0 :(得分:3)
旧的文件管理器能够做到这一点。不幸的是,这些文档似乎甚至不在Apple的Retired Documents Library中。
因此,您必须查看标题,这些标题非常详细。见/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Files.h
。在那里,你会发现,例如FSOpenFork()
,它采用任意的叉名。但是请注意,记录它的评论说,&#34;所有卷都应该支持数据和资源分支。 某些卷支持可能的其他命名分支。&#34; (强调我的。)
从FSOpenFork()
获得分叉参考号后,您可以使用FSReadFork()
从中读取,等等。
答案 1 :(得分:1)
花了几个小时后,我相信我可以安全地得出这个结论:
抱歉,我没有特定的链接来支持我的发现。我基本上通过查看apple.com和许多其他不同页面上的许多页面来构建图片。
但是特别是与叉子相关的大多数API成对存在,其中一个用于数据叉,另一个用于资源叉。当API使用或返回有关forks的数据时,它使用一个只能有两个合法值的数字字段,而不是一个代表fork名称的任意字符串。
答案 2 :(得分:1)
我的旧答案是错误的!三年后,互联网上现在有了更多信息,包括旧的和过时的Apple开发人员文档的镜像。
以下是我发现的命名叉的API的选择:
FSOpenFork
打开文件或目录的任何分支以进行流访问。PBOpenForkSync
打开文件或目录的任何分支以进行流访问。PBOpenForkAsync
打开文件或目录的任何分支以进行流访问。FSCreateFork
为文件或目录创建一个命名派生。PBCreateForkSync
为文件或目录创建一个命名派生。PBCreateForkAsync
为文件或目录创建一个命名派生。FSDeleteFork
从文件或目录中删除命名的派生。PBDeleteForkSync
从文件或目录中删除命名的派生。PBDeleteForkAsync
删除文件或目录的命名分支FSIterateForks
确定属于文件或目录的每个命名fork的名称和大小。PBIterateForksSync
确定属于文件或目录的每个命名fork的名称和大小。PBIterateForksAsync
确定属于文件或目录的每个命名fork的名称和大小FSGetForkSize
返回打开的分叉的大小。PBGetForkSizeSync
返回打开的分叉的大小。PBGetForkSizeAsync
返回打开的分叉的大小。FSSetForkSize
更改打开的叉子的大小。PBSetForkSizeSync
更改打开的叉子的大小。PBSetForkSizeAsync
更改打开的叉子的大小。