.net 如何创建虚拟Windows驱动器

.net 如何创建虚拟Windows驱动器,.net,windows,winapi,virtual,drive,.net,Windows,Winapi,Virtual,Drive,我正在尝试创建一个Windows虚拟驱动器(如c:\)来映射远程存储。 主要目的是以一种清晰的方式向用户展示。因此,用户不会知道他正在另一个站点上写作/阅读 我在搜索可用的产品,发现在Windows和WebDAV中FUSE不是一个选项,它直接映射到驱动器,我想在Windows和远程存储之间建立一个中间层,以实现某种服务。 还有另一种选择,例如非常昂贵的Dokan和似乎无法明确创建新Windows驱动器的System.IO.IsolatedStorage命名空间 可能PISMO()是与我的需求基本

我正在尝试创建一个Windows虚拟驱动器(如c:\)来映射远程存储。 主要目的是以一种清晰的方式向用户展示。因此,用户不会知道他正在另一个站点上写作/阅读

我在搜索可用的产品,发现在Windows和WebDAV中FUSE不是一个选项,它直接映射到驱动器,我想在Windows和远程存储之间建立一个中间层,以实现某种服务。 还有另一种选择,例如非常昂贵的Dokan和似乎无法明确创建新Windows驱动器的System.IO.IsolatedStorage命名空间

可能PISMO()是与我的需求基本匹配的东西,但我知道是否还有其他的选择,包括一些Windows(C++或.NET)的原生API来做。 感谢阅读:)

在应用程序启动的脚本中使用该命令可能是一个选项。

地图驱动器:

虚拟CD/DVD驱动器


虚拟硬盘使用虚拟PC 2007

您可以编写一个Shell名称空间扩展,允许您将任何内容表示为驱动器(带有子文件夹、文件、自定义菜单等等),但您必须从头开始构建所有功能。好处是网上有很多样本,比如一个。

正如我看到的,有几个选项可以实现这一点

“本机”正在创建一个截获I/O操作的自定义驱动程序(.sys文件)。微软称之为迷你过滤器。此选项是最难的,但允许您完全控制

懦夫的;)选项是使用现有库来完成此操作,例如Dokan、GPL()、Pismo、free()或回调文件系统()

但是,如果您没有Windows作为主要目标,您可以使用FUSE,这是一个非常好的选择。

如上所述,我们的产品是受支持的产品,具有全面的功能集、示例和支持。我们还提供免费的非商业许可证。

如果您(或其他人)仍然介意对驱动程序本身进行编码,那么已经有几种开源和工作原型:

  • FileDiskHttpDisk,作者:Bo Brantén:
  • ImDisk由Olof Lagerkvist提供:

    • 看看这篇文章。这是使用Windows操作系统中的SUBST.exe完成的


      在Windows 8中创建虚拟硬盘驱动器


      谢谢

      subst是一个不错的选择,但只要我想实现一种中间层,我就想“捕获”读写事件。我认为使用subst我无法实现这一点。也许我可以制作一个“守护进程”程序来持续监视“替换”文件夹,但我更喜欢另一个选项。感谢您的响应,但这并不是我想要的:)但是,这些对象只存在于Shell(资源管理器)级别。您不能在CreateFile()调用中使用它们。不幸的是,这是一个黑盒子,需要花钱。这不是一个营销平台。在提出建议之前,先透露你在该公司工作。它促进了透明度和透明度trust@Bozzy评论时请注意答案的日期。当时的规则不同。礼貌也没有坏处(对你来说是一个友好的暗示)。@EugeneMayevski'EldoS啊,但是现在你知道了新的政策,你可以在披露中编辑。我知道这是一个非常古老的问题,但是你选择了什么样的方法以及它的可用性如何?谢谢大家!@tonek-我们使用了Dokan,而且很难处理Windows资源管理器和文件系统问题,但我认为Dokan是最好的免费选项。如果你想要一个付费的,就去找艾尔多。有人试过吗?我还没有尝试过,但从描述来看,它也在做类似的事情。看看GalaxyTK,我认为它只提供了Windows外壳名称空间扩展,不能像映射驱动器那样使用(参见下面MSalters回复Paul Jan)我看到的很多程序都创建了虚拟“映射网络驱动器”,而不是虚拟硬盘驱动器。这是因为前者更容易实现吗?如果我希望前者用于虚拟数据I/O(例如,用于网站存储的虚拟网络驱动器),Prismo仍然是最佳选择吗?这不是OP想要的。