是否可以使用C#中的Filestream写入文件的中间位置

时间:2013-11-25 11:37:49

标签: c# filestream

想知道是否可以使用.NET / C#中的FileStream将文本插入文件的中间。如果没有,还有另一种方法吗?我看到Truncate和Append的选项,但显然这不是我想要的。我想我可以打开一个文件流源,创建另一个目标文件并按照我的意愿写入它,然后截断源并从第二个文件或大缓冲区写回来,或者删除源并将目标文件重命名为原始源文件名。

我想我的问题是,这种事情是如何最有效和安全地完成的。

1 个答案:

答案 0 :(得分:4)

不 - 这基本上是大多数文件系统的限制。

我会推荐您建议的方法(从原始文件中选择性地复制到新文件),然后重命名文件而不是复制回原始文件的顶部。

如果您很高兴将整个文件放在内存中,您可以按照问题中的注释将整个文件读入内存,进行更改然后覆盖现有文件 - 但显然不能扩展为以及非常大的文件。这一切都取决于具体情况。