从流创建虚拟文件路径

mar*_*ler 6 c# winapi virtualpathprovider stream file-handling

我有一个关于C#和Windows API的一般问题:

我的任务是从文档管理系统(DMS)加载文件,并从该文件创建一个字节数组.从DMS的开发人员那里得到了一个dll,提供了这样的方法:

loadFile(int DocId, string PathToSaveFile);
Run Code Online (Sandbox Code Playgroud)

不幸的是,给定的dll没有为我提供一种方法来将所请求的文件作为字节数组或任何类型的流传递.现在我的问题是,C#是否可以创建某种虚拟路径,而这种路径在二级存储上实际上并不存在.相反,写入此路径的所有位和字节都会在流中转发给我?我的目的是提高性能,因为我不必将数据写入硬盘.

我已经搜索了很多,但实际上不知道我必须寻找的关键字.也许有人可以给我一个提示,或者只是告诉我根本不可能.

Ste*_*eve 2

这在一定程度上取决于库如何打开文件并读取文件。如果它使用CreateFile,那么您有可能通过命名管道提供访问。可以使用 指定命名管道的路径\\.\pipe\PipeNameHere。在 C# 中,您可以使用NamedPipeServerStream

然而,我认为客户端应用程序与此兼容的可能性相对较小,并且建议创建一个更容易实现并且更有可能工作的RAM 驱动器。RAM 驱动器将显示为普通磁盘驱动器。您可以向其中保存和加载文件,但这一切都是在内存中完成的。