在磁盘上创建虚拟文件

问题描述 投票:0回答:1

我有一个外部程序(作为可执行二进制文件),它消耗可能非常大的输入文件。我正在编写一个 C# 应用程序,它将从我们的数据库中获取数据;将其中的一部分写入临时目录;然后调用外部程序(通过 Process.Run())来使用临时文件并产生一些输出。

外部程序不允许输入重定向(即“程序< file.txt"); it can only open files in the filesystem. However, I've noticed that some of these input files are kind of a waste of space: in my special case, they basically amount to the same line repeated over and over.

我可以做些什么来按需动态生成这些文件/流,而不实际将它们写入磁盘吗?我查看了内存映射文件,但我不认为我可以强制目标可执行文件消耗它们......

c# file process stream filesystems
1个回答
0
投票

文件的位置是固定的,还是将其指定为参数?如果你可以指定路径,那么你可以做的一件事就是使用CBFS Connect(注意,我与它相关)并使用它的Memory Drive示例(包含在其中)创建一个虚拟磁盘,其内容是存储在内存中。然后,让相关应用程序在该虚拟磁盘上创建并使用文件。您可以将数据按原样存储在内存中,也可以修改示例以在读取文件时伪造数据,以便文件数据不占用内存空间。如果您需要短期使用虚拟磁盘,试用版就足够了,或者销售人员可能会为您提供个人使用的许可证。

© www.soinside.com 2019 - 2024. All rights reserved.