工控编程吧

标题: 上位机MFC如何复制文件 [打印本页]

作者: qq263946146    时间: 2019-8-1 12:38
标题: 上位机MFC如何复制文件
文件的复制可以使用函数CopyFile。
函数传递源文件,目标文件,以及目标路径文件重名的处理方法。
假如我们让用户选择了源文件strSourcePathName。
也选择了目标strTargetPathName。我们就可以调用此函数来实现文件复制。
添加按钮1,让用户选择源文件。
void CDemoDlg::OnTest1()
{
        //创建文件对话框
        CString strFilter = _T("所有文件(*.*)|*.*||");
        CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY |
                OFN_OVERWRITEPROMPT, strFilter);
        dlg.m_ofn.lpstrTitle = _T("源文件");

        if(dlg.DoModal() == IDOK)
        {
                //获得源文件路径
                CString strSourcePathName = dlg.GetPathName();

                SetDlgItemText(IDC_TEXT1, strSourcePathName);
        }       
}

添加按钮2,让用户选择目标文件
  1. void CDemoDlg::OnTest2()
  2. {
  3.         //创建文件对话框
  4.         CString strFilter = _T("所有文件(*.*)|*.*||");
  5.         CFileDialog dlg(FALSE, NULL, NULL, OFN_HIDEREADONLY |
  6.                 OFN_OVERWRITEPROMPT, strFilter);
  7.         dlg.m_ofn.lpstrTitle = _T("目标文件");

  8.         if(dlg.DoModal() == IDOK)
  9.         {
  10.                 //获得目标文件路径
  11.                 CString strTargetPathName = dlg.GetPathName();

  12.                 SetDlgItemText(IDC_TEXT2, strTargetPathName);
  13.         }
  14. }

复制代码
添加复制按钮,实现文件复制
  1. void CDemoDlg::OnTest3()
  2. {
  3.         CString strSourcePathName = _T("");
  4.         GetDlgItemText(IDC_TEXT1, strSourcePathName);

  5.         CString strTargetPathName = _T("");
  6.         GetDlgItemText(IDC_TEXT2, strTargetPathName);

  7.         if (strSourcePathName == _T(""))
  8.         {
  9.                 AfxMessageBox(_T("请选择源文件。"));
  10.                 return;
  11.         }

  12.         if (strTargetPathName == _T(""))
  13.         {
  14.                 AfxMessageBox(_T("请选择目标文件。"));
  15.                 return;
  16.         }

  17.         //复制文件,如果目标文件存在将不覆盖。
  18.         if (::CopyFile(strSourcePathName, strTargetPathName, TRUE))
  19.         {
  20.                 AfxMessageBox(_T("复制文件成功。"));
  21.         }
  22.         else
  23.         {
  24.                 AfxMessageBox(_T("复制文件失败。"));
  25.         }
  26. }
复制代码
控件ID,IDC_TEXT1,IDC_TEXT2为我们添加的编辑框。
[MFC408]1[/MFC408]
[weixinlianxi]1[/weixinlianxi]






欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4