从流创建虚拟文件路径

时间:2013-04-17 07:22:35

标签: c# winapi stream file-handling virtualpathprovider

我对C#& amp; Windows API:

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

loadFile(int DocId, string PathToSaveFile);

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

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

1 个答案:

答案 0 :(得分:2)

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

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