c++代码模拟Windows下的虚拟映射网络驱动器

C++ code to emulate virtually mapped network drive under Windows?

本文关键字:虚拟 映射 网络 驱动器 代码 模拟 Windows c++      更新时间:2023-10-16

情况如下:

我有一个RESTful web服务,当查询时返回一个虚拟文件列表(文件名,大小,最后修改,创建日期和id)。还可以从相同的web服务中使用其id获取任何文件的二进制内容数据。

我想做什么:

我想写一段c++代码,让操作系统(Windows XP, vista或7)相信存在一个映射的网络驱动器(例如:Z),这样当用户在Windows资源管理器中输入(Z:)时,虚拟文件列表(从web服务返回)就会显示出来。另外,当双击资源管理器视图中的文件图标时,这段c++代码应该从web服务中检索二进制数据,并将其作为合法文件内容呈现给操作系统。

换句话说,用户(和操作系统)不应该能够区分Z和任何其他普通驱动器之间的区别。

任何想法?

您需要的是所谓的"用户空间文件系统"。例如,您可以在Dokan库上创建一个。

http://pages.cs.wisc.edu/~driscoll/fuse-nt.pdf

维基百科上列出的更多

我们的回调文件系统是你正在寻找的。

回调文件系统允许您将通用数据(例如从远程web服务检索的数据)映射到驱动器号。