Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 拦截文件系统对流或字节数组的写入_C#_File Io_Stream_Shapefile - Fatal编程技术网

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

C# 拦截文件系统对流或字节数组的写入,c#,file-io,stream,shapefile,C#,File Io,Stream,Shapefile,我有一个带有.NET包装器(在本例中)的C库,它使用类似C:\path\to\Things\Filename.shp的路径将文件(shapefile)写入文件系统。然而,将文件写入文件系统并不是我真正需要的。一旦它们被写入,我就必须将它们读回流中,以便通过web交付它们、将它们添加到zip文件或执行其他任务。将它们写入文件系统意味着我只需跟踪杂乱无章的内容,并不可避免地以某种方式清理它们 我不确定是否有类似路径的地方stream://output.shp 是否可以拦截文件系统写入并在内存中处理整

我有一个带有.NET包装器(在本例中)的C库,它使用类似
C:\path\to\Things\Filename.shp的路径将文件(shapefile)写入文件系统。然而,将文件写入文件系统并不是我真正需要的。一旦它们被写入,我就必须将它们读回流中,以便通过web交付它们、将它们添加到zip文件或执行其他任务。将它们写入文件系统意味着我只需跟踪杂乱无章的内容,并不可避免地以某种方式清理它们

我不确定是否有类似路径的地方stream://output.shp


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

大家一致认为这是“几乎不可能的”。如果您确实需要确保在RAM中实现这一点,那么最好安装RAM磁盘驱动程序。在谷歌上搜索[windows intercept file output]。或者退房

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

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

大家一致认为这是“几乎不可能的”。如果你真的需要确保这是在RAM中完成的,最好的办法是安装一个RAM磁盘驱动程序。在谷歌上搜索[windows intercept file output]。或者退房

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

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

谢谢我并不是真的很在意性能,这只是避免FS混乱和可能的命名冲突的问题。我将使用
try/finally
制定一个好的解决方案!最后我制作了一个
IDisposble
processor类,它将在构造函数中创建一个临时文件夹,并在Dispose中删除它。使用
块使用
包装实例并完成!谢谢我并不是真的很在意性能,这只是避免FS混乱和可能的命名冲突的问题。我将使用
try/finally
制定一个好的解决方案!最后我制作了一个
IDisposble
processor类,它将在构造函数中创建一个临时文件夹,并在Dispose中删除它。使用
块使用
包装实例并完成!