首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

【help】MFC怎么将CFileDialog选中的文件复制到工程目录下

2012-02-03 
【help】MFC如何将CFileDialog选中的文件复制到工程目录下现在我下写一个TXT小说阅读器,遇到一个问题当不能

【help】MFC如何将CFileDialog选中的文件复制到工程目录下
现在我下写一个TXT小说阅读器,遇到一个问题当不能将CFileDialog选中的文件复制到工程目录下,复制的时候总是会报错,显示的是文件目录不正确,
lpsh.pTo = "res\\"; 着个路劲是工程目录下的一个文件夹。然而把pTo改成绝对路劲就可以复制成功,或者是把if(cfile.DoModal()==IDOK)注释掉也可以成功,不知道是什么问题请大家帮忙解决一下。。。
CFileDialog cfile(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,NULL,NULL);

if(cfile.DoModal()==IDOK)
{
SHFILEOPSTRUCT lpsh;   ZeroMemory(&lpsh,sizeof(lpsh));   
lpsh.hwnd= HWND_DESKTOP;   

lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;   
lpsh.wFunc=FO_COPY; // FO_MOVE 则是移动
lpsh.pFrom= "C:\\Test.txt";
lpsh.pTo = "res\\";   
if( 0 != SHFileOperation(&lpsh))   
{   
AfxMessageBox("复制文件出错,请检查");   return ;   
}
}

百思不得其解,难道说CFileDialog 和SHFileOperation(&lpsh)复制文件不能同用,但是我想了下没道理呀,在CFileDialog弹出来的时候点击确定保存路劲然后复制文件应该是可以用的呀。。。大侠们帮忙解决一下,小弟感激不尽。。

[解决办法]
如果你想在CFileDialog之后恢复原来的工作目录很简单啊,在CFileDialog.DoModal之前用GetCurrentDirectory 保存当前工作目录,在DoModal之后用 SetCurrentDirectory 恢复不就行了。

热点排行