5

我有一个文件路径列表。这些路径可能会导致卸载卷上的文件。在我尝试访问文件之前,如何以编程方式告诉操作系统挂载卷?

我知道这是可能的,因为 iTunes 似乎做到了。例如,如果我开始播放位于 iTunes 中未安装的网络附加卷上的歌曲,该卷会自动为我安装。

如果我尝试在指定路径以编程方式打开文件,操作系统是否应该为我自动安装卷?还是我需要使用磁盘仲裁框架或类似的东西手动安装驱动器?

如果我需要使用磁盘仲裁框架,具体需要做什么?

4

2 回答 2

3

简短的回答:无需弄乱“磁盘仲裁框架”。Alias Manager 可以为您处理这一切。

Chris Suter 已经非常接近了。有两种解决方案,API 方面:

  1. 别名。这些已经存在于 OSX 之前的 MacOS 中,并且是结构化文件,包含多种定位文件或文件夹的方法,即使它已被移动或重命名。它们还包含有关它们所在卷的信息,包括安装信息(如果它位于网络卷上)。如果您只是创建一个文件的别名(使用文件菜单中 Finder 的“制作别名”命令),然后重命名或移动它,或者卸载它的卷,您就可以亲眼看到这些操作。Finder 将尝试恢复卷,必要时甚至会要求您提供登录信息。还有“别名管理器”API,包括功能 FSResolveAliasFileWithMountFlags 这正是您所要求的:它不仅可以让您找到别名的目标,还可以选择磁盘是否可用,如果它'

  2. CFURL 书签。这是 Alias API 的现代替代品,仅在 OSX 10.6 之后才存在。CFURL 书签在运行时由系统更好地管理。我不知道它们是否具有与经典 Alias 文件一样的等效磁盘文件表示形式,但也许它们甚至完全相同。

无论如何,我希望这些应该是您需要的所有指针。

于 2013-01-03T11:26:52.063 回答
1

您是否尝试过使用别名?我认为它们现在被称为书签。当您解决它们时,它们可能会导致安装卷。

于 2013-01-03T01:08:04.747 回答