如何以编程方式访问Snow Leopard上的文件资源分叉?

时间:2011-02-04 01:53:36

标签: resources osx-snow-leopard fork

我最近想知道Mac OS X如何存储文件的缩略图。经过一些谷歌搜索后,我发现了“资源分叉”,这个功能显然是Apple的HFS文件系统所特有的。

我真的不喜欢有资源分叉的想法,我希望能够删除它们。有没有办法以编程方式访问资源分叉?各种论坛帖子都说要查看像presentation.pdf这样的文件的资源分支,我应该ls presentation.pdf/rsrc,但是我无法在我的系统上找到这样的文件。这仍然是雪豹的工作原理吗?

我对下载或购买一些为我这样做的工具不感兴趣。我对命令行很满意,理想情况下我想要一个命令行解决方案,以便我可以编写脚本。

在我真正完成此操作之前,我想我应该问:删除资源分叉有什么害处吗?

2 个答案:

答案 0 :(得分:3)

这取决于资源分支中的内容。不鼓励使用资源分支,但是很少有保留,包括别名文件,自定义图标(在文件上)和一些遗留字体文件。您可以使用“ls -l @”验证文件在终端中是否有资源分支。资源分支也通过“com.apple.ResourceFork”属性在扩展属性API中公开。

如果您只想删除缩略图,可以从Finder的GetInfo面板中执行此操作。扩展属性API(如removexattr(2))将允许您以编程方式删除资源叉。

如果您对资源分支中的内容感到好奇,可以使用:“hexdump -C myfile / .. namedfork / rsrc”

希望这有帮助

-Don

答案 1 :(得分:0)

你问 - “删除资源分叉有什么害处吗?”

当然有。那些是某人以某种方式构造的文件,如果你从中删除了块,那么无论使用它们的程序都不会满意。你应该只在你知道自己正在进入的某些情况下这样做。

例如,文本剪辑(将一大块选定文本拖到桌面时获得的内容)完全存储在资源分支中。数据分叉为空。这很烦人,但它就是这样。如果删除资源分支,则会显示所有文本。

更好的方法可能是联系任何仍在创建资源分支的软件的作者,并试图说服他们放弃这种做法,因为你喜欢在数据分叉中拥有所有内容。