MFC CopyFile()复制文件时路径问题
为什么CopyFile()复制文件时,写成m_strPath=dlg.GetPathName();CopyFile(m_strPath,"D:\\图片\\111.jpg"...
为什么CopyFile()复制文件时,写成
m_strPath=dlg.GetPathName();
CopyFile(m_strPath,"D:\\图片\\111.jpg");会出错
而直接用路径就不会错,例如:
CopyFile("E:\\壁纸\\008.jpg","D:\\图片\\111.jpg");就不会错
难道用GetPathName();获得的路劲不可以直接用吗?要怎么改用m_strPath才不会出错啊? 展开
m_strPath=dlg.GetPathName();
CopyFile(m_strPath,"D:\\图片\\111.jpg");会出错
而直接用路径就不会错,例如:
CopyFile("E:\\壁纸\\008.jpg","D:\\图片\\111.jpg");就不会错
难道用GetPathName();获得的路劲不可以直接用吗?要怎么改用m_strPath才不会出错啊? 展开
4个回答
展开全部
你的写法是不是有问题啊?试试仿照我这个写呢:
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);
}
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);
}
展开全部
在m_strPath=dlg.GetPathName();这里设个断点看看你的m_strPath到底拿到值没有。
也可以用try...catch来查看是什么异常
也可以用try...catch来查看是什么异常
追问
请问要怎么修改?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在被m_strPath使用前 加一句 setlocale(LC_ALL,"Chinese-simplified"); 设置中文运行环境
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因该是m_strPath的值不对了。
追问
请问要怎么修改?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询