OSX Finder中的“虚拟文件”仅在我的应用程序运行时出现,可能吗?

时间:2012-11-06 21:46:24

标签: xcode cocoa osx-mountain-lion finder

有没有办法“挂钩”到OSX Finder中执行以下操作:

当我的应用程序启动时,用户在他的Finder中看到一个由我的应用程序创建的文件夹。在此文件夹中,用户可以看到来自多个文件夹的文件...统一视图到用户在我的应用程序中指定的多个文件夹中的多个文件。 因此,在这个“统一文件夹”中不是真正的文件,它们仍然在原始文件夹中,但是用户在这个文件夹中看到它们就像在这个新文件夹中有他所有的真实文件一样。所以不涉及复制或移动。

老实说,我不知道是否可能以及我应该在Cocoa SDK中寻找什么。也许有Finder本身的API或其他方式?!

此致

twickl

1 个答案:

答案 0 :(得分:1)

第一个选项是您的应用程序可以为原始文件创建别名。 Finder将在图标上显示一个小箭头“徽章”,因此很明显它们不是原始文件而是别名。

如果你不喜欢创建硬链接的图标上的徽章可能会给你你想要的东西。

Mac OS X提供了与UFS(Unix)文件系统匹配的HFS +(Mac)文件系统视图,您可以访问硬链接和符号链接。后者由Finder处理类似于别名,但前者与原始文件无法区分,因为它们 原始文件 - 在Unix文件系统下,目录中的文件只是一个引用( inode number)到真实文件,目录中的每个条目只是实际文件的硬链接,文件可以有任意数量的硬链接(当链接数下降时,文件被删除)如果有帮助,请考虑保留/释放模型。

在Cocoa级别NSFileManager有创建硬链接的方法,或者你可以使用Unix级link(2)函数。