COleStreamFile :: C#中的OpenStream替换

时间:2013-05-28 11:27:55

标签: c# c++ mfc filestream carchive

我有一个用MFC编写的代码用于文件读写。我正在为C#重写它。

我的文件由三部分组成,标题 * 正文 *和页脚。现在在MFC代码中,CArchive可以写入/读取这些部分中的任何一个。这是由 COleStreamFile :: OpenStream 完成的。在这个方法中,我们给出了要读取的部分,这将返回指向文件中该位置的流。然后,CArchive使用流和读/写文件。

COleStreamFile stream;
//Stream is pointed to footer location.
stream.OpenStream(m_pStg, "Footer", nOpenFlags, pError);  // pStg is LPSTORAGE
CArchive ar(&stream, CArchive::load);

现在,当我执行 ar>> ar<< 时,此代码后,我没有从开始读取文件。它是从中间或结尾读取(取决于流)。现在我想要的是将此代码转换为C#。什么是C#中 COleStreamFile :: OpenStream 的替代品。

这是我到目前为止所做的。

using (var stream = new FileStream(filePath, FileMode.Open))
{
    using (var binaryReader = new BinaryReader(stream)
    {
    }
}

现在这里的流指向了开始。我想我可以让它从特定的字节读取。但我不知道那个字节位置。我所知道的是MFC代码正在使用的标题正文页脚名称。

或者有什么方法可以在读取或写入时找出CArchive的当前位置。如果我从那里得到字节位置,我也可以使用它。

0 个答案:

没有答案