永发信息网

mfc CopyFile() 复制文件的问题

答案:2  悬赏:10  手机版
解决时间 2021-04-14 02:46
  • 提问者网友:谁的错
  • 2021-04-13 15:19
下面的代码编译没有问题,运行的时候没有复制文件,怎么回事??

CString strpath;
LPMALLOC pMalloc;
if(::SHGetMalloc(&pMalloc) == NOERROR)
{
BROWSEINFO bi;
char pszBuffer[MAX_PATH];
LPITEMIDLIST pidl;
bi.hwndOwner = GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = pszBuffer;
bi.lpszTitle = _T("请选择保持位置:");
bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
if((pidl = ::SHBrowseForFolder(&bi)) != NULL)
{
if (::SHGetPathFromIDList(pidl, pszBuffer))
{
strpath= pszBuffer;
}
pMalloc->Free(pidl);
}
pMalloc->Release();
}

CString temp_file_str=" E:\\templete\\templete.xls";
CString des_file_str= strpath+"\\"+ myDialog->m_asm_name+".xls";

CopyFile(_T(temp_file_str), _T(des_file_str),false);
最佳答案
  • 五星知识达人网友:酒安江南
  • 2021-04-13 16:13
单步调试一下看结果。
全部回答
  • 1楼网友:刀戟声无边
  • 2021-04-13 16:28
你的写法是不是有问题啊?试试仿照我这个写呢: cfiledialog dlg(true);// true为open对话框,false 为 save as 对换框 if(dlg.domodal()==idok) { cstring str=dlg.getpathname(); messagebox(l"选择保存的路径是:" + str); } 这是令一个方法,也拿去试试。 我直接把自己的代码贴过来了,没有怎么改,相信你能看得懂,知道哪些有用,哪些没用,偷个小懒,嘿嘿! browseinfo bbinfo; memset(&bbinfo,0,sizeof(browseinfo));// 定义结构并初始化 tchar strtmp[255]; lpitemidlist lpdlist; bbinfo.hwndowner = m_hwnd;// 设置对话框所有者句柄 bbinfo.lpsztitle = l"请选择拷贝的源路径:"; bbinfo.ulflags = bif_returnonlyfsdirs;// 设置标志只允许选择目录 // 用来保存返回信息的idlist,使用shgetpathfromidlist函数转换为字符串 lpdlist = shbrowseforfolder(&bbinfo);// 显示选择对话框 if (lpdlist != null) { shgetpathfromidlist(lpdlist,strtmp);// 把项目标识列表转化成目录 trace(strtmp); m_strfrompath = strtmp; updatedata(false); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯