下面的代码编译没有问题,运行的时候没有复制文件,怎么回事??
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);
mfc CopyFile() 复制文件的问题
答案:2 悬赏:10 手机版
解决时间 2021-04-14 02:46
- 提问者网友:谁的错
- 2021-04-13 15:19
最佳答案
- 五星知识达人网友:酒安江南
- 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);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯