void CCopyFileDlg::OnCopy()
{
CFile *readfile,*writefile;
DWORD readlen,filelen,poslen;
CString strsrc,strdes;
char buf[512];
GetDlgItem(IDC_EDSRC)->GetWindowText(strsrc); //获取原文件名
GetDlgItem(IDC_EDDES)->GetWindowText(strdes); //获取目标文件名
readfile=new CFile(strsrc,CFile::modeRead); //创建文件对象
writefile=new CFile(strdes,CFile::modeWrite|CFile::modeCreate);
filelen=readfile->GetLength(); //获取源文件长度
while(1)
{
ZeroMemory(buf,512); //清空数组
readlen=readfile->ReadHuge(buf,512); //读文件
poslen=readfile->GetPosition(); //获取读指针当前位置
writefile->WriteHuge(buf,readlen); //写文件
if(poslen==filelen) //读到文件末尾
{
AfxMessageBox("复制完成");
break;
}
}
readfile->Close(); //关闭文件
writefile->Close();
delete readfile; //释放堆内存
delete writefile;
}