16,551
社区成员
发帖
与我相关
我的任务
分享
字符之后他会自动结束,这个字符复制不出来的,下面一个圈圈上面一个往右边的箭头,这个是不是就是传说中的EOF?老是过不去,上网查了很多资料都说用二进制读就可以读出来,但是我就是用的二进制,用的是这个CFile::typeBinary,但是还是不行,一到那里就停下来读不过去了,麻烦有遇到过这些问题的回答下小弟吧,小弟第一次发帖,急啊,谢谢!
fileRead.Open(dlg.m_strPath,CFile::typeBinary|CFile::modeRead,NULL);
int length = m_nLength;//读取文件的大小
int iBufSize = 1024*5;//设置文件缓冲区长度
int iSize = iBufSize ; //一次读取的长度
BYTE *pBuf=new BYTE[iBufSize + 1];//定义缓冲区
UINT uiTotal = 0 ;
while( uiTotal < length ){
if( length - uiTotal < iBufSize )//如果发送小于1024*5 ,则发送剩余那些....
iSize = length - uiTotal;
iSize = fileRead.Read(pBuf,iSize);//读取文件到缓冲区
pBuf[iSize] = '\0';
CString sBuf;
sBuf.Format("%s",pBuf);
SendMsgTo(sBuf,5,msg.m_nIndex);//发送剩下iSize-iCount的文件
uiTotal += sBuf.GetLength();//uiTotal总发送量
}
fileRead.Close();
CFile file;
if(file.Open(_T("xxx.zip"),CFile::modeRead|CFile::typeBinary))
{
UINT uiLen = file.GetLength();
BYTE* btFile = new BYTE[uiLen];
if(file.Read(btFile,uiLen) != uiLen)
AfxMessageBox(_T("读取文件出错");
file.Close();
}