2024年3月9日发(作者:)
1. 复制文件:
UpdateData();
//提示用户是否复制文件
if
(MessageBox("是否将原始文件复制到目标文件?","提示",MB_OKCANCEL)==IDOK)
{ CFile
*pSrcFile=NULL; CFile *pDstFile=NULL;//定义两个指向原始文件和目标文件的指针
TRY
{ pSrcFile=new CFile(m_szSrcFile, CFile::modeRead);
//原始文件赋值给指针
pDstFile=new CFile(m_szDrcFile,
CFile::modeCreate|CFile::modeWrite);//目标文件 int nRead;
//读取的字节数
char szBuffer[1024];
//复制缓冲区,用于将读取的数据缓存,然后写入
//循环直到读取的字节数为0
while
(nRead=pSrcFile->Read(szBuffer,sizeof(szBuffer)))
{
pDstFile->Write(szBuffer,nRead); }
pSrcFile->Close(); pDstFile->Close();//关闭文件指针
delete pSrcFile; delete pDstFile;//删除,否则内存泄漏
MessageBox("文件复制成功。
","提示",MB_OK); //提示复制成功
}
CATCH(CFileException,e)
{ MessageBox("文件复制失败。","提示",MB_OK);
//出错,提示复制失败
if (pSrcFile!=NULL)
{
pSrcFile->Abort(); delete pSrcFile; //安全关闭原始文件
}
if (pDstFile!=NULL)
{
pDstFile->Abort(); delete pDstFile;
}
}
END_CATCH
}
2.
剪切文件内容(从A文件把内容剪切到B文件,并删除A文件,AB两文件类型相同)
UpdateData();
//提示用户是否移动文件
if
(MessageBox("是否将原始文件移动到目标文件?","提示",MB_OKCANCEL)==IDOK)
{ CFile
*pSrcFile=NULL; CFile *pDstFile=NULL;
TRY
{
pSrcFile=new CFile(m_szSrcFile, CFile::modeRead); //原始文件
pDstFile=new CFile(m_szDrcFile,
CFile::modeCreate|CFile::modeWrite);//目标文件
int nRead;
//读取的字节数
char szBuffer[1024];
//复制缓冲区,用于将读取的数据缓存,然后写入
//循环直到读取的字节数为0
while
(nRead=pSrcFile->Read(szBuffer,sizeof(szBuffer)))
{ pDstFile->Write(szBuffer,nRead);
}


发布评论