Alias QuickTime'的结构;s';dref&x27;原子';alis&x27;要素

Alias QuickTime'的结构;s';dref&x27;原子';alis&x27;要素,alias,quicktime,Alias,Quicktime,我需要重写一部QuickTime参考电影,让它指向另一组文件。 我在Windows环境中工作,因此我没有访问QuickTime API的权限,并且由于引用的文件不可接受,我也无法使用COM接口加载电影,因为它无法解析引用的路径 “QuickTime文件格式规范”中的文档说明,“dref”原子可以有一个“ALI”、“url”和“rsrc”数据引用列表。在本例中,我需要解析'alis'元素。根据参考,“数据参考是Macintosh的别名” 这么长时间以来,我一直无法看到结构声明或任何相关信息。您知道

我需要重写一部QuickTime参考电影,让它指向另一组文件。 我在Windows环境中工作,因此我没有访问QuickTime API的权限,并且由于引用的文件不可接受,我也无法使用COM接口加载电影,因为它无法解析引用的路径

“QuickTime文件格式规范”中的文档说明,“dref”原子可以有一个“ALI”、“url”和“rsrc”数据引用列表。在本例中,我需要解析'alis'元素。根据参考,“数据参考是Macintosh的别名”

这么长时间以来,我一直无法看到结构声明或任何相关信息。您知道别名记录的结构吗?在哪里可以找到有关其结构的详细信息

非常感谢你的帮助

您可以使用查看标题中的内容,并提取数据(虽然有点旧,但可能仍然有效)。不过,更有用的是作者对Quicktime标题的深入讨论


但我认为您可能只是在查找Apple文档。

该格式非常类似于您可以通过右键单击某个项目并为其创建别名在Finder中生成的别名

旁白:当QuickTime格式最初被指定时,苹果明智地选择合并许多其他标准和范例,这些标准和范例已经在操作系统的其他地方广泛使用。这就是为什么QT能够(或曾经)做一些非常聪明的事情,比如参考电影的原因之一。不幸的是,现在还有很多与操作系统功能无关的遗留问题(如AppleShare)。在它的全盛时期,QuickTime是圆滑的,尤其是与它的竞争对手相比;今天,由于有缺陷的Windows端口和当时桌面系统相对较低的处理能力,人们对它的重视程度大大降低

回到ontopic,不幸的是,alias文件的格式不是一个开放/发布的标准,而且在“net”上关于这个主题的文档很少。有一个真正解构了Mac OS Classic中使用的别名格式。尽管OS X中使用的结构非常相似,但alias文件本身往往要大得多,因为它们在文件末尾包含大量额外的数据字符串,而这些字符串在上述链接文档中没有记录

此外,在finder中创建的别名看起来确实与dref atom中包含的别名有点不同,尽管我从来没有一点一点地遍历它们来推断实际的差异。如果您想查看这些文件的内容,并安装OSX开发工具,您可以运行

    setfile -a a [filename]
在查找器生成的别名上删除该文件的别名,以便您可以在十六进制编辑器中查看其内容(否则,操作系统只会将您重定向到链接文件-doh!)。您可以重新设置文件的别名属性,或通过运行

    setfile -a A [filename]
不幸的是,在我的实验中,转储QT电影的
dref
atom的
alis
部分似乎从未生成Mac OS能够解释的别名

幸运的是(或者不是,在我的例子中),Mac OS据称用来创建/处理别名的函数是一个名为的公共API的一部分,它是非常低级的CoreServices框架的一部分。如果您有时间深入研究这个问题,您可以编写一些代码来试验Mac OS内置的别名生成和解释功能


不幸的是,如果您处理的是一个旧的/有缺陷的文件,那么您无法知道该文件是否由CoreServices的Alias Manager生成,或者该框架是否从那时起发生了变化/演变/倒退。因为它是一种封闭格式,所以选择不使用Alias Manager的第三方开发人员只能猜测该格式的“合法”结构。

我想我刚刚找到了一份非官方文档: