在C#中“随机”访问大文件

时间:2012-04-02 15:24:20

标签: c# file-io

我正在录制直播视频。我们录制的格式要求初始标题中的帧数。显然,当我们开始录制时,我们不知道视频的大小,它可以很容易地进入GB的10s。我的问题是,如何使用C#覆盖二进制文件中的特定字节集而不必处理整个文件?

2 个答案:

答案 0 :(得分:3)

您使用FileStream - 它会让您在文件中设置位置并在该位置覆盖。

此时您需要确保该文件已关闭,并且仍未向其写入任何视频,否则会导致锁定违规。

答案 1 :(得分:1)

如果你正在处理录像,那么处理非常大的文件,那么Memory Mapped Files就没有其他选择了。如果您的逻辑面向寻找流,那么它将不是代码中最容易采用的。但顺便说一下,这将是最好的选择,imo。

一个很好的例子就是这个:Programming Memory-Mapped Files with the .NET Framework