【发布时间】:2012-02-28 04:23:11
【问题描述】:
这可能是一个奇怪的问题,但是否有任何 Windows API 允许应用程序像映射驱动器或物理驱动器一样运行?例如,当您在 Windows 资源管理器中导航到“驱动器”时,应用程序会返回一个看起来像是图像文件列表的内容。然后,当您单击图像文件时,应用程序会从数据库中提供图像。
【问题讨论】:
这可能是一个奇怪的问题,但是否有任何 Windows API 允许应用程序像映射驱动器或物理驱动器一样运行?例如,当您在 Windows 资源管理器中导航到“驱动器”时,应用程序会返回一个看起来像是图像文件列表的内容。然后,当您单击图像文件时,应用程序会从数据库中提供图像。
【问题讨论】:
至少有三种方法可以做到这一点:
编写一个 CIFS 服务器,然后您可以使用“Microsoft 网络客户端”重定向器连接到它,Windows 会完成拦截文件访问并将它们发送到您的应用程序的所有艰苦工作。或者编写一个 HTTP+WebDAV 服务器,并使用 Microsoft 提供的“Web 文件夹”重定向器。但是,WebDAV 并不像 CIFS 那样兼容所有应用程序。
编写一个 Explorer 命名空间扩展。这些文件没有驱动器号,并且只能由使用 Shell PIDL 进行文件访问的程序使用。
编写文件系统驱动程序。由于这需要内核模式,这是一个比较困难的开发环境,而且很容易让你的电脑崩溃,所以我不推荐这个选项。但是,您可能会发现一些现有的内核驱动程序会转发到用户模式进程,例如 Linux 上的fuse。
【讨论】:
您需要创建一个虚拟驱动器。
这不是很多人做过的事情,但基本上很简单 - 请参阅http://www.acc.umu.se/~bosse/
【讨论】: