字体
第(1/5)页
关灯
   存书签 书架管理 返回目录
    com 用于指定要删除文件的路径名,可以为相对路径也可以为绝对路径。

    注意该函数不能删除目录。如果指定的文件已打开或者文件不能被删除,Remove()函数

    将抛出异常。

    实例8-2:文件cāo作实例。源代码在光盘中“\08\实例8-2\FileManipulate”目录下。

    FileManipulate 示例是一个基于对话框的MFC 应用程序,其界面如图8-2 所示。该示例

    实现了文件的删除、复制和移动功能。选择好原始文件和目标文件(可以自行输入也可以单

    击对应的“打开”按钮打开文件对话框进行选择),然后单击对话框底部的按钮可以实现如下

    的文件cāo作:

    ? “删除原始文件”按钮:用于删除原始文件输入框所指定的文件。

    ? “复制”按钮:用于将原始文件复制到目标文件。

    ? “移动”按钮:用于将原始文件移动到目标文件。

    图8-2 “文件cāo作”对话框

    删除文件的代码在CFileManipulateDlg::OnDel()中,用到了CFile::Remove()静态成员函数

    进行删除。

    复制文件的代码在CFileManipulateDlg::OnCopy()中,其思想是将原始文件的内容分几次

    读入内存中,再将内存中的数据依次写入目标文件,代码如下:

    pSrcFile=new CFile(m_szSrcFile, CFile::modeRead); //原始文件

    枫叶文学网www.fywxw.com

    第8 章 文件cāo作

    ·201·

    pDstFile=new CFile(m_szDstFile, 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;

    移动文件的代码在CFileManipulateDlg::OnMove()中,其主要思想是将原始文件复制到目

    标文件后再删除原始文件。

    技巧:CFile::Remove()函数不能删除目录,而Windows API 提供了RemoveDirectory()函数,用于

    删除一个空目录,对于目录中的文件需要自行删除。MFC 中提供CFileFind 类用于枚举目

    录中的子文件, 使用这个类的功能枚举出目录中的所有文件并删除, 再使用

    RemoveDirectory()删除空目录即可完成删除目录的功能。

    下面介绍删除目录的详细过程。首先需要枚举目录文件。
上一章 目录 下一页