GetLength()返回的总是0

来源:百度知道 编辑:UC知道 时间:2024/06/14 22:16:06
我用此函数打开一个txt文件,将所有内容读取到cstring变量aa中;
CString aa;
CFileOpenSave OFile(TRUE,"*.txt","*.txt");
if(OFile.DoModal()==IDOK)
{
CFile file;
UINT FileSize;
VERIFY(file.Open(OFile.GetPathName (),CFile::modeRead));
FileSize=file.GetLength();
file.Read(aa.GetBuffer(FileSize),FileSize);
file.Close();
}

用aa做输出的时候确实把整个txt文件都显示了(也就是成功读取并存放了啊)但用aa.GetLength()返回的总是0,请问哪里出问题了?不是应该返回字节数的吗?aa.Mid(0,1)应该返回第一字符,可是确把却把整个内容都返回了,同样的问题

CFile cf;

CString buff,cs;

static char BASED_CODE szFilter[] = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*||";

CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,BASED_CODE szFilter,this);

if(dlg.DoModal()==IDOK)

{

cf.Open(dlg.GetFileName(),CFile::modeReadWrite);

cf.Read(buff.GetBuffer(cf.GetLength()),cf.GetLength());

cs.Format("文件长度为:%d,文件类容:%s",cf.GetLength(),buff);

MessageBox(cs);

cf.Close();
}

我这个就可以呀.

我向问一下CFileOpenSave这个类我在VC6.0下怎么没有呀?