我已经看到一些应用程序能够在 MacOS 上的 Finder 中将自己表示为外部磁盘。通常,这些是云存储应用程序,例如PCloud Drive和WD Discovery。我想知道他们是如何做到这一点的。
我意识到云存储可能只是实现了一些远程文件系统协议,例如 Samba 或 AFP。但我仍然不太明白应用程序如何将文件系统直接挂载到 Finder 中。此外,如果虚拟文件系统不依赖于网络存储,是否有更有效的方法来挂载它?
我已经看到一些应用程序能够在 MacOS 上的 Finder 中将自己表示为外部磁盘。通常,这些是云存储应用程序,例如PCloud Drive和WD Discovery。我想知道他们是如何做到这一点的。
我意识到云存储可能只是实现了一些远程文件系统协议,例如 Samba 或 AFP。但我仍然不太明白应用程序如何将文件系统直接挂载到 Finder 中。此外,如果虚拟文件系统不依赖于网络存储,是否有更有效的方法来挂载它?
这是一个相当高级的问题,所以我将给出一个高级的答案。我不知道您列出的具体示例如何实现它,但这应该不难找到。
据我所知,选项如下:
<sys/vnode.h>
、<sys/vnode_if.h>
和<vfs/vfs_support.h>
。这为您提供了最大的权力,但也很困难,并且安装 kexts 的用户体验不断恶化。(除非用户做一些相当复杂的杂技,否则它们根本不会在 ARM64 Mac 上加载。)NSFileProvider
. 这适用于云风格的虚拟文件系统,但在某种程度上可以用于不同但相关的场景。