c++(MFC)对文件的基本操作

c++ 基于MFC对文件的操作

首先基本的MFC的创建,创建后添加组件
直接使用工具栏拖拉;

简单的定义两个按钮

双击组件给按钮添加响应事件

  • 复制文件响应代码
void CMFCtest1Dlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    BOOL bcopyfile = CopyFile(_T("D:\\1.txt"),_T("D:\\2.txt"),true);//true代表如果文件已存在则不能复制,如果为false可以覆盖复制;

    if (bcopyfile)
    {
        ::MessageBox(NULL, _T("成功"), _T("复制结果"), 0);

    }
    else {
        ::MessageBox(NULL, _T("失败"), _T("复制结果"), 0);
    }
}

MessageBox参数理解
function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word: Integer);
hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使直接作为桌面窗口的子窗口。
Text:欲显示的信息字符串。
Caption:对话框标题字符串。
Type:对话框类型常量。

  • 删除文件
void CMFCtest1Dlg::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知处理程序代码
    BOOL bdelfile = DeleteFile(_T("D:\\2.txt"));

    if (bdelfile) {
        ::MessageBox(NULL, _T("已删除"), _T("删除结果"), 0);
    }
    else {
        ::MessageBox(NULL, _T("删除失败"), _T("删除结果"), 0);
    }
}
  • 对文件夹递归删除
    删除文件夹是如果文件夹里有子文件夹,系统提供的的是无法删除的,需要递归去删;
void CMFCtest1Dlg::OnBnClickedButton4()
{
    // TODO: 在此添加控件通知处理程序代码
    MyDelDir(_T("D:\\测试c++文件夹"));
        BOOL bdeldir = RemoveDirectory(_T("D:\\测试c++文件夹"));
    if (bdeldir) {
        ::MessageBox(NULL, _T("已del"), _T("del文件夹"), 0);
    }
    else {
        ::MessageBox(NULL, _T("del失败"), _T("del文件夹"), 0);
    }
}
void CMFCtest1Dlg::MyDelDir(CString dir_path)
{
    CString path;
    CFileFind finder;
    //CString name;

    path.Format(_T("%s\\*.*"),dir_path);

    BOOL bfinddir = finder.FindFile(path);

    while (bfinddir) 
    {
        bfinddir = finder.FindNextFile();//查找下一个文件
        //name = finder.GetFilePath();//获得当前文件目录
        if (finder.IsSystem()) //判断是否是系统文件
        {
            continue;
        }
        if (finder.IsDirectory() && !finder.IsDots())//判断当前文件是否是文件夹,判断文件前面是否带.或.. 
        {
            //name = finder.GetFilePath();
            MyDelDir(finder.GetFilePath());//递归
            RemoveDirectory(finder.GetFilePath());//删除文件夹
        }
        else {
            //name = finder.GetFilePath();
            DeleteFile(finder.GetFilePath());
        }

    }
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值