downloadfile.cpp
来自「wisock应用队列思想实现单线程多任务http下载的类. 实现多文件同时下载」· C++ 代码 · 共 76 行
CPP
76 行
#include ".\downloadfile.h"
CDownloadFile::CDownloadFile()
{
m_iCurOffset = 0;
m_iContentLen = 0;
m_pFile = NULL;
}
CDownloadFile::CDownloadFile( LPCTSTR lpszSavePath,LPTSTR lpszFileName )
{
m_iCurOffset = 0;
m_iContentLen = 0;
// m_pFile = fopen( lpszFileName,"w+b");
_tcscpy(m_lpszSavePath,lpszSavePath);
_tcscpy(m_lpszFileName,lpszFileName);
}
CDownloadFile::~CDownloadFile(void)
{
if( m_pFile != NULL )
fclose(m_pFile);
m_pFile = NULL;
printf("closeFile\n");
}
void CDownloadFile::OpenFile()
{
TCHAR localURL[10240];
_tcscpy(localURL,m_lpszSavePath);
_tcscat(localURL,m_lpszFileName);
m_pFile = fopen( m_lpszFileName,"r+b");
if(NULL == m_pFile)
m_pFile = fopen( m_lpszFileName,"w+b");
}
void CDownloadFile::SaveFile( LPTSTR buffer,int bufSize )
{
if(NULL == m_pFile)
{
//文件未初始化,exception
}
else
{
int recvSize ;
recvSize = fwrite(buffer,sizeof(CHAR),bufSize,m_pFile);
if( recvSize != sizeof(CHAR)*bufSize )
{
//写文件出错,exception
}
else
{
m_iCurOffset += recvSize;
}
if( m_iCurOffset == m_iContentLen )
{
CloseFile();
}
}
}
void CDownloadFile::CloseFile()
{
if( m_pFile != NULL )
fclose(m_pFile);
m_pFile = NULL;
}
void CDownloadFile::SetContentLen(UINT len)
{
m_iContentLen = len;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?