关于CFileDialog的一个问题

yangzhao202 2008-04-12 11:06:02
CString strPath;
CFileDialog fileDlg(FALSE, "mdb","Source.mdb", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "数据库文件 (*.mdb)|*.mdb|所有文件 (*.*)|*.*||", NULL);
if (fileDlg.DoModal() == IDOK)
strPath = fileDlg.GetPathName();
//strPath = "E:\\123.mdb";/*这里这样写也不行*/
if(CopyFile(".\\Source.mdb",strPath,FALSE))
AfxMessageBox("数据库备份成功!");
else
AfxMessageBox("数据库备份失败!");
哪里出错了?如果给strPath赋值也不行,除非把创建CFileDialog注释掉,才会成功!帮帮我
...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangzhao202 2008-04-14
  • 打赏
  • 举报
回复
呵呵,谢谢cnzdgs 拿分!
naiveC 2008-04-13
  • 打赏
  • 举报
回复
楼上强人,学习了..
cnzdgs 2008-04-13
  • 打赏
  • 举报
回复
CFileDialog会改变进程的当前路径,所以使用CFileDialog之后在用.\Source.mdb就找不到了。
mr.zhoux 2008-04-13
  • 打赏
  • 举报
回复
CFileDialog fileDlg(FALSE, "mdb","Source.mdb", OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, "数据库文件 (*.mdb) ¦*.mdb ¦所有文件 (*.*) ¦*.* ¦¦", this);
yangzhao202 2008-04-12
  • 打赏
  • 举报
回复
楼上两位都没看明白,我说过注释掉CFileDialog fileDlg(FALSE, "mdb","Source.mdb", OFN_HIDEREADONLY ¦ OFN_OVERWRITEPROMPT, "数据库文件 (*.mdb) ¦*.mdb ¦所有文件 (*.*) ¦*.* ¦ ¦", NULL);
if (fileDlg.DoModal() == IDOK)
strPath = fileDlg.GetPathName();
直接赋值然后就好了!这是为什么?
bitxinhai 2008-04-12
  • 打赏
  • 举报
回复
if(CopyFile(".\\Source.mdb",strPath,FALSE))
应该是"..\\Source.mdb"
吧,这才表示相对路径的意思啊
ouyangzhongmin 2008-04-12
  • 打赏
  • 举报
回复
::CopyFile(strPath,"C:\\Source.mdb",,FALSE);楼主为什么不查下MSDN呢
soft78 2008-04-12
  • 打赏
  • 举报
回复

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧