类似文件的界面,无需物理写入文件系统

类似文件的界面,无需物理写入文件系统

在我正在开展的项目中,有两个相互作用的 Windows 7 进程:

  • 进程 A - 从硬盘加载文件的第三方闭源服务
  • 进程 B - 创建这些文件并将其写入硬盘的内部进程

当前设置按预期工作,但它违反了一项业务要求 - 我们不允许在处理数据时创建临时文件。

在 Linux 上,我可以使用 mkfifo 创建“管道文件”TMP_FILE,并将其用作这些进程之间的缓冲区,而不是写入文件系统。至于 Windows,我完全不知所措。

问题:

在 Windows 7 上,当我无法修改的进程只能从文件中读取时,如何满足不在磁盘上创建临时文件的要求?

附加信息:

  • 进程 A 接收包含要处理的文件名的 XML 消息
  • 流程 B 只是一个原型,可以以任何必要的方式进行修改
  • 原始数据通过 SCP 从 Linux 服务器发送并由进程 B 接收,如果有帮助,可以更改协议

答案1

您所要求的 Windows 版本相当于命名管道

与 Unix 不同,命名管道无法挂载在普通文件系统中。与 Unix 不同,命名管道也是易失性的(在关闭对它们的最后一个引用后被删除)。每个管道都放置在命名管道文件系统 (NPFS) 的根目录中,挂载在特殊路径下\\.\pipe\(即名为“foo”的管道的完整路径名为\\.\pipe\foo)。管道中使用的匿名管道实际上是具有随机名称的命名管道。

命名管道的文档可以在以下位置找到:微软

如何实际实现这一点超出了 SuperUser 的范围,但有一些例子在 Stack Overflow 上


或者,根据我上面的评论,如果您想要 RAM 的速度,但出于某种原因想要一个“真正的文件系统”,也可以选择使用 Ramdisk。根据文件的数量和大小,有数据内存虚拟磁盘或其品牌衍生产品 AMD Radeon Ramdisk。我相信免费版本限制为 2GB。

维基百科有一个相当全面的列表虚拟硬盘软件

相关内容