我正在使用支持基于简单文件的数据交换协议的第三方应用程序——您可以设置一个提供文件名的数据通道,该应用程序将打开文件并向其中写入内容。我想通过在文件名应该是的地方提供一个命名管道名称来将它用于传统 IPC 之类的东西 - 并从应用程序收到一条 .NET 错误消息,沿着“FileStream 不能像这样使用非 -文件对象,请围绕 Windows 句柄构造一个”。这不是一个选项,因为它不是我的代码开始的。
在不修改第三方客户端代码的情况下,是否有某种方法可以提供足够类似文件的东西(即具有文件名但读取和写入由我的代码处理的东西)来欺骗
FileStream
?自定义文件系统驱动程序可能可以解决问题,但这有点过分了。
编辑:稍微便宜一点的替代方案是 winfsp,但它仍然是内核级注入 - 用户态可编程内核文件系统驱动程序。仍然是一个太深层次的魔法。是否有类似 winfsp 的 Windows 的一部分......
经过一番努力,我让它与真实文件的文件共享结合运行
FileSystemWatcher
的后台进程一起工作,该进程注意到写入并跟进那些。
这并没有回答所提出的问题,而是解决了潜在的问题。