<分区>
我想用 C++ 创建一个程序,它允许客户端实质上挂载服务器的目录,而不是使用该目录及其包含的文件,就好像它们存储在本地一样。
服务器将在 linux 上运行,但客户端可以是 linux 或 windows。尽管我不介意一开始就让它仅限于 Linux,只要可以添加功能以支持 Windows 客户端,而无需重写大量代码。
我将如何着手创建这样的东西?在过去的几周里,我学到了很多关于套接字的知识,我假设它发挥了作用,但我还没有找到如何允许挂载目录,然后在文件发生某些事情时执行某些操作在该目录中。
例如,当用户保存文件时,服务器除了保存文件外,还应该能够在另一个目录中创建该文件的时间戳备份。
我从哪里开始学习如何执行此操作?
在 Linux 下,现代桌面环境已经包含了这种功能。使用 mount 和 fuse,您还可以挂载当今可用的大多数网络文件系统。
如果您决定继续这样做,我猜您需要选择什么级别来进行抽象。具有桌面环境抽象就足够了吗,比如在 KDE 中制作 kioslave,这会限制您作为用户使用 KDE 应用程序。或者你应该选择 FUSE 模块,它可以在文件系统级别上工作,并且可以与所有应用程序一起工作,当然缺乏 kioslaves 的 UI 集成。
在 Windows 下,我认为你唯一的方法是使用提供的虚拟文件系统 api,我可以发誓我最近读到过类似的东西,但我找不到它。我相信也可以进行资源管理器集成,但我不确定。