用于安装自定义文件系统的跨平台解决方案

标签 cross-platform filesystems mount

我需要使我的数据成为机器文件系统的一部分。

在 Windows 中,我似乎有 3 个选择:

  1. Eldos 的“回调文件系统”( http://www.eldos.com/cbfs/ )
  2. Dokan (dokan-dev.net)
  3. Pismo 文件挂载 ( http://www.pismotechnic.com/pfm/ )

在这 3 个选项中,第 1 个(Eldos)是迄今为止最好看的选项。

但理想情况下,我希望获得一个也支持 Linux/Unix 和 Mac 的解决方案。换句话说,回调有一些通用的接口(interface),但不同的文件系统有不同的实现。

有人知道这样的解决方案吗?

最佳答案

更新:PFM 拥有 Mac 和 Linux 端口已有一段时间了。如果可移植性是主要考虑因素,那么 PFM 是不涉及调整 3 个主要桌面平台上不同 API 的选项。

全面披露,我是 Pismo Technic Inc. 的主要 PFM 开发人员。

PFM 和 CBFS 提供作为 FUSE 内置于 Linux 中的功能,并且可作为 MacFUSE 免费用于 Mac。

我相信您最好的选择是使用您自己的移植层将大部分代码与 Linux/Mac 上的 FUSE 细节以及 Windows 上的 PFM 或 CBFS 细节隔离。通过低级 FUSE 编写了 Linux/Mac PFM 端口后,我相信 FUSE 和 PFM 之间的差异非常容易管理。 CBFS 更确切地说公开了 native Windows 文件系统模型,因此可能会涉及更大的功能差异。

native Windows 文件系统模型与类 UNIX 操作系统上的文件系统模型有很大不同。对于主要处理用户模式 ​​Win32 或 UNIX 的开发人员来说,这种差异是很难想象的。尽管适用于 Windows 类型的技术的 FUSE 是可能的,但最终它可能需要如此多的 Windows 特定更改,以至于最终与在 Windows 上使用 PFM 或 CBFS 大致相同。

关于用于安装自定义文件系统的跨平台解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2235286/

相关文章:

c++ - Lua 是游戏服务器的最佳/最快选择吗?

ios - 没有这样的模块 'FlutterPluginRegistrant'

python - 使用 Python Tkinter 时如何绑定(bind)/映射全局热键?

c++ - 在 C++ Windows 中获取硬盘的总大小

Eclipse - 关闭而不保存工作区

c# - 移动跨平台游戏开发的最佳编程语言

PHP警告: mkdir(): Not a directory when creating directory

swift - 从 XCode 运行项目是否会清除文件系统?

java - java的Filestore类的方法supportsFileAttributeView(...)

linux - 如何在 Linux 上从包含多个分区的镜像文件中挂载一个分区?