接收到文件后,不弹出保存对话框,直接存储到D盘跟目录

zouhj2009 2011-10-09 10:28:20
void CSrvAcceptSock::OnRecvFileInfo()
{
CSrvAcceptSock sock;
m_pDlgTcpSrv->m_ctrlProgressRecv.SetPos(0);
TcpFileInfo fileInfo;
fileInfo.fileLen=0;
int nSize=sizeof(fileInfo.fileName);
memset(fileInfo.fileName,0,nSize);
UINT nLen=sizeof(TcpFileInfo);
UINT unRXCharNum;
unRXCharNum=Receive(&fileInfo,nLen,0);
if(unRXCharNum>nLen||unRXCharNum<=0)
{
AfxMessageBox("接收数据出错!",MB_OK);
return;
}
m_nFileLen=fileInfo.fileLen;
m_pDlgTcpSrv->m_ctrlProgressRecv.SetRange32(0,m_nFileLen);
CFileDialog fileDlg(FALSE,NULL,fileInfo.fileName);
fileDlg.m_ofn.lpstrTitle="请命名并保存接收文件!";
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
if(IDOK==fileDlg.DoModal())
{
m_pDlgTcpSrv->m_strRecvFileName=fileInfo.fileName;
if(!sockFile.Open(fileInfo.fileName,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary))
{
m_pDlgTcpSrv->m_ctrlRecvFile.SetCheck(0);
m_pDlgTcpSrv->m_bRecvFile=FALSE;
AfxMessageBox("创建或写入文件失败!");
int tcpPacketType;
tcpPacketType=TCP_FILE_ACCERROR1;
Send(&tcpPacketType,4,0);
m_bType=TRUE;
return;
}
else
{
int tcpPacketType;
tcpPacketType=TCP_FILE_ACCOK;
Send(&tcpPacketType,4,0);
m_pDlgTcpSrv->UpdateData(FALSE);
(m_pDlgTcpSrv->m_ctrlSendFile).EnableWindow(FALSE);
m_bFileData=TRUE;
}
}
else
{
int tcpPacketType;
tcpPacketType=TCP_FILE_ACCERROR2;
Send(&tcpPacketType,4,0);
m_bType=TRUE;
}
}

接收到文件后,不弹出保存对话框,直接存储到D盘跟目录

改了几次没改好 哎
if(IDOK==fileDlg.DoModal())直接改成true弹出AfxMessageBox("创建或写入文件失败!");为神马??

...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fandh 2011-10-09
  • 打赏
  • 举报
回复
fileInfo.fileName用绝对路径试试
zouhj2009 2011-10-09
  • 打赏
  • 举报
回复
sockFile.Close();
有关闭代码的
zouhj2009 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fandh 的回复:]
1、你确信fileInfo.fileName;里面有具体的路径文件名?
2、sockFile.Open每次打开后,是不是应该关闭?不然下次打开就可能有问题!
[/Quote]
fileInfo.fileName调试只是文件名 没见路径
qiuxin425 2011-10-09
  • 打赏
  • 举报
回复
接收完直接Write之后就行了
fandh 2011-10-09
  • 打赏
  • 举报
回复
1、你确信fileInfo.fileName;里面有具体的路径文件名?
2、sockFile.Open每次打开后,是不是应该关闭?不然下次打开就可能有问题!
zouhj2009 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hnzlk 的回复:]
数据接收完了吗?
[/Quote]
没有啊
hnzlk 2011-10-09
  • 打赏
  • 举报
回复
数据接收完了吗?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧