我有一个用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的当前位置。如果我从那里得到字节位置,我也可以使用它。