拦截文件系统对流或字节数组的写入

本文关键字:数组 字节数 字节 文件系统 对流 | 更新日期: 2023-09-27 18:02:12

我有一个带有。net包装器的C库(在这种情况下是Shapelib),它使用C:'Path'To'Things'Filename.shp这样的路径将文件(Shapefiles)写入文件系统。但是,将文件写入文件系统实际上并不是我所需要的。一旦它们写好了,我必须把它们读回流中,或者通过网络发送,或者将它们添加到压缩文件中,或者执行其他任务。将它们写入文件系统意味着我只需要跟踪这些杂乱的内容,并不可避免地以某种方式清理它们。

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

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

拦截文件系统对流或字节数组的写入

大家一致认为这是"几乎不可能的"。如果您确实需要确保这是在RAM中完成的,您最好的选择是安装RAM磁盘驱动程序。用谷歌搜索[windows拦截文件输出]。或者查看拦截程序在Windows 7中的输出。

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

try
{
    // do everything
}
finally
{
    // clean up
}