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);

}