接收文件的函数如下
void CMainFrame::ReceFile()
{
SOCKET_STREAM_FILE_INFO StreamFileInfo;
m_Socket->Receive(&StreamFileInfo,sizeof(SOCKET_STREAM_FILE_INFO)); CFile destFile(StreamFileInfo.szFileTitle, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); UINT dwRead = 0;
while(dwRead<StreamFileInfo.nFileSizeLow)
{
byte* data = new byte[1024];
memset(data,0,1024); UINT dw=m_Socket->Receive(data, 1024);
destFile.Write(data, dw); dwRead+=dw;
} SetFileTime((HANDLE) destFile.m_hFile,&StreamFileInfo.ftCreationTime,
&StreamFileInfo.ftLastAccessTime,&StreamFileInfo.ftLastWriteTime);
destFile.Close();
SetFileAttributes(StreamFileInfo.szFileTitle,StreamFileInfo.dwFileAttributes);
AfxMessageBox("接收完毕!");
}
为什么总是不执行?其中SOCKET_STREAM_FILE_INFO 的定义如下:
typedef struct _SOCKET_STREAM_FILE_INFO { TCHAR szFileTitle[128]; //文件的标题名
DWORD dwFileAttributes; //文件的属性
FILETIME ftCreationTime; //文件的创建时间
FILETIME ftLastAccessTime; //文件的最后访问时间
FILETIME ftLastWriteTime; //文件的最后修改时间
DWORD nFileSizeHigh; //文件大小的高位双字
DWORD nFileSizeLow; //文件大小的低位双字
DWORD dwReserved0; //保留,为0
DWORD dwReserved1; //保留,为0} SOCKET_STREAM_FILE_INFO, * PSOCKET_STREAM_FILE_INFO;
请您一定帮忙,我已经郁闷了好几天了
void CMainFrame::ReceFile()
{
SOCKET_STREAM_FILE_INFO StreamFileInfo;
m_Socket->Receive(&StreamFileInfo,sizeof(SOCKET_STREAM_FILE_INFO)); CFile destFile(StreamFileInfo.szFileTitle, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); UINT dwRead = 0;
while(dwRead<StreamFileInfo.nFileSizeLow)
{
byte* data = new byte[1024];
memset(data,0,1024); UINT dw=m_Socket->Receive(data, 1024);
destFile.Write(data, dw); dwRead+=dw;
} SetFileTime((HANDLE) destFile.m_hFile,&StreamFileInfo.ftCreationTime,
&StreamFileInfo.ftLastAccessTime,&StreamFileInfo.ftLastWriteTime);
destFile.Close();
SetFileAttributes(StreamFileInfo.szFileTitle,StreamFileInfo.dwFileAttributes);
AfxMessageBox("接收完毕!");
}
为什么总是不执行?其中SOCKET_STREAM_FILE_INFO 的定义如下:
typedef struct _SOCKET_STREAM_FILE_INFO { TCHAR szFileTitle[128]; //文件的标题名
DWORD dwFileAttributes; //文件的属性
FILETIME ftCreationTime; //文件的创建时间
FILETIME ftLastAccessTime; //文件的最后访问时间
FILETIME ftLastWriteTime; //文件的最后修改时间
DWORD nFileSizeHigh; //文件大小的高位双字
DWORD nFileSizeLow; //文件大小的低位双字
DWORD dwReserved0; //保留,为0
DWORD dwReserved1; //保留,为0} SOCKET_STREAM_FILE_INFO, * PSOCKET_STREAM_FILE_INFO;
请您一定帮忙,我已经郁闷了好几天了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货