CFile cf;
if(cf.Open("mydata.dat",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite)==NULL)
{
AfxMessageBox("打开文件失败");
}Sample sampleTemp;
try
{
cf.SeekToBegin();
DWORD dwBytesRemaining=cf.GetLength();
while(dwBytesRemaining)
{
UINT nBytesRead=cf.Read(&sampleTemp,sizeof(Sample));
TemplateList.AddTail(sampleTemp);
dwBytesRemaining-=nBytesRead;
}}
catch(CFileException *e){ e->ReportError();
e->Delete();
}
我用这段代码打一个空文件mydata.dat,dwBytesRemaining的值一开始就是0,这是对的。可是如果在此之前进行了其他文件操作(操作的不是mydata.dat),再调用这段代码时(mydata.dat还是为空),dwBytesRemaining的值却变成了1000多,这是什么原因呢?