1

我有一个带有 .NET 包装器(在本例中是Shapelib )的 C 库,它使用 .NET 之类的路径将文件(Shapefiles)写入文件系统C:\Path\To\Things\Filename.shp。但是,将文件写入文件系统实际上并不是我需要的。编写完成后,无论如何我都必须将它们读回流中,以通过网络传递它们,将它们添加到 zip 文件中,或执行其他任务。将它们写入文件系统意味着我只需要跟踪混乱并不可避免地以某种方式清理它们。

我不确定是否有像PHP的流协议寄存器这样的路径可能像stream://output.shp......

是否可以拦截文件系统写入并在内存中处理整个任务?就算能做到,这也是可怕的做法吗?谢谢!

4

1 回答 1

1

共识是,这“几乎是不可能的”。如果你真的需要确保这是在 RAM 中完成的,最好的办法是安装 RAM 磁盘驱动程序。谷歌搜索[windows拦截文件输出]。或者查看Windows 7 中程序的截取输出

也就是说,很可能您写入磁盘的大部分数据都将缓存在内存中,因此右转并从磁盘读取数据不会那么昂贵。您仍然有清理问题,但解决起来并不难:只需使用一个try/finally块:

try
{
    // do everything
}
finally
{
    // clean up
}
于 2013-03-04T14:55:46.223 回答