GetLength(); 得到的为什么是0?

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:59:54
CFile cf; char *i; int ip=5;
if(cf.Open("1zz.exe",CFile::modeRead|CFile::modeCreate|CFile::modeNoTruncate)) MessageBox("vvv");
ip=cf.GetLength(); ////////////////这里的ip为什么是0;正确的不是0
i=new char(ip);
cf.Read(i,ip);
cf.Close();

有CFile::modeCreate是
如果文件存在则会把文件大小重置为0;
你用CFile::modeCreate|CFile::modeNoTruncate

有CFile::modeCreate加上CFile::modeNoTruncate 这个就不会重置文件大小了

如果文件存在,则去掉 CFile::modeCreate 即可.

要不然你就先创建再定入.

有CFile::modeCreate表示创建新文件了,大小当然是0

cf打开文件没有成功吧
你看看cf打开文件的返回值