hur.cn - 华软网

 热门搜索

MFC复制文件的问题

  作者:未知    来源:网络    更新时间:2011/6/9
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, L"All Files(*.*)|*.*||");

 if(dlg.DoModal() == IDOK)
 {
  //获得文件名

    CString GetReplaceString;  
    szFileName = dlg.GetPathName();
    CFileStatus status;
    CFile::GetStatus(szFileName,status);
 }
 CString csStr("copy ");
 system(csStr+ szFileName4 +"D:\\文档");
为什么这样不行啊?
先是选择要被复制的文件,然后复制到D:\\文档下?

---华软 网友回答---
哪玩大哥帮小弟修改下,指下怎么修改,谢谢
---华软网友回复---
直接用winAPI函数 CopyFile

API中的CopyFile:
BOOL WINAPI CopyFile(LPCSTR oldFileName, LPCSTR newFileName, BOOL failIfExists);
oldFileName: 原始文件名;
newFileName: 目标文件名;
failIfExists: 目标文件已存在时的处理办法。TRUE则不覆盖并返回失败标记,FALSE则覆盖。
返回值:TRUE代表成功,FALSE代表失败。
---华软网友回复---
那我上面的那个错在哪里呢
---华软网友回复---
包含 WinBase.h 头文件
CopyFile(szFileName4,"D:\\文档\\",false);
---华软网友回复---
CString csStr("copy ");
 system(csStr+ szFileName4 +"D:\\文档\\.");
---华软网友回复---
后面打个“.”就行了
---华软网友回复---
错误 1 error C2664: “CopyFileW”: 不能将参数 2 从“const char [9]”转换为“LPCWSTR” c:\Documents and Settings\Administrator\桌面\通信\Transport\Transport\TransportDlg.cpp 237

---华软网友回复---
引用 6 楼 johnroot 的回复:
后面打个“.”就行了


打个.还是没复制过去
---华软网友回复---
CopyFile之前最好检查一下当前文件属性,是否可以复制。MFC加控制台。。。
---华软网友回复---
引用 7 楼 yi_xiaoerguo 的回复:
错误 1 error C2664: “CopyFileW”: 不能将参数 2 从“const char [9]”转换为“LPCWSTR” c:\Documents and Settings\Administrator\桌面\通信\Transport\Transport\TransportDlg.cpp 237


CopyFileA(szFileName4,"D:\\文档\\",false);
---华软网友回复---
引用 7 楼 yi_xiaoerguo 的回复:
错误 1 error C2664: “CopyFileW”: 不能将参数 2 从“const char [9]”转换为“LPCWSTR” c:\Documents and Settings\Administrator\桌面\通信\Transport\Transport\TransportDlg.cpp 237

这个错误搞掉了
但是这个copyfile 也没效果。。。。
---华软网友回复---
CopyFileW(szFileName4,L"D:\\文档\\",false);
---华软网友回复---
引用 10 楼 johnroot 的回复:
引用 7 楼 yi_xiaoerguo 的回复:

错误 1 error C2664: “CopyFileW”: 不能将参数 2 从“const char [9]”转换为“LPCWSTR” c:\Documents and Settings\Administrator\桌面\通信\Transport\Transport\TransportDlg.cpp 237


CopyFileA(s……

恩,错误搞掉了,但还是没效果呢
---华软网友回复---
引用 12 楼 johnroot 的回复:
CopyFileW(szFileName4,L"D:\\文档\\",false);

恩,是这样的
---华软网友回复---
CString csStr(_T("copy "));
system(csStr+ szFileName4 + _T("D:\\文档"));
---华软网友回复---
if(dlg.DoModal() == IDOK)
 {
  //获得文件名

  CString szFileName;   
  szFileName = dlg.GetPathName()+dlg.GetFileName();
 }
 CString csStr("copy ");
 system(csStr+ szFileNam +"D:\\文档\\.");
---华软网友回复---
引用 15 楼 kyotrue 的回复:
CString csStr(_T("copy "));
system(csStr+ szFileName4 + _T("D:\\文档"));


这个也不行啊
。。。。
---华软网友回复---
引用 16 楼 johnroot 的回复:
if(dlg.DoModal() == IDOK)
 {
  //获得文件名

  CString szFileName;  
  szFileName = dlg.GetPathName()+dlg.GetFileName();
 }
 CString csStr("copy ");
 system(csStr+ szFileNam +"D:\\文档\\.");


大哥,还是不行哎
---华软网友回复---
system("copy E:\\图片\\1.jpg D:\\文档");
这样写死是可以的,为什么动态选择文件就不行啊?
---华软网友回复---
干什么非用system?
用CopyFile ....也可以啊
---华软网友回复---
引用 20 楼 q1q2q3q4ln 的回复:
干什么非用system?
用CopyFile ....也可以啊

copyfile也试过,不知道为什么一点反应都没有,好奇怪
---华软网友回复---
D:前面要有空格!
---华软网友回复---
  szFileName = dlg.GetPathName();
 CString csStr("copy ");
 system(csStr+ szFileName +"D:\\文档");

其实错误出在了:比如你得到的szFileName是 d:\document\1.txt   这样就是system(“copy d:\document\1.txt D:\\文档”)
是不是路径出错了?d:\document\1.txt??
---华软网友回复---
CopyFile()
SHFileOperation();
---华软网友回复---
多调试调试,说不定是那小问题出错了
代码上看好像没什么错误的。可能哪里设置有问题      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。