关于文件写失效问题--MFC文件读写策略和缓存策略相关
各位兄弟,
我写了一个程序,
在程序中片断 :
TRACE("SaveInf\n");
m_cpListViewInfo->Trace();
CFile file;
CFileStatus status;
if( !file.Open((LPCTSTR)m_strFilePath, CFile::modeCreate|CFile::modeWrite ))
{
AfxMessageBox("保存设定失败!");
return false;
}
CArchive ar(&file, CArchive::store);
ar.WriteObject(m_cpListViewInfo);
ar.Close();
file.Close();
TRACE("After SaveInf\n");
m_cpListViewInfo->Trace();
m_cpListViewInfo->Trace()是一个函数,
实现打印内部成员到调试窗口的功能.
现在发现,
m_cpListViewInfo->Trace()表示数据确实是符合设定的(程序的其它部分改写了m_cpListViewInfo中内容)
但是磁盘文件中没有改变,依然是旧的记录.
使用调试工具深入到 ar.WriteObject(m_cpListViewInfo);
发现到一句Write(XXX)语句前都正常,
就是无法把东西写到磁盘上.
这个bug重现性很好,
每次可以重现,
一个值得关注的情况是 :
这个bug每次出现再我在程序中打开了新文件后,
所以我怀疑是不是和"文件系统的读写策略""文件缓存策略"有关.
盼赐教.