3961|8

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问EVC下如何把一个文件夹复制到另一个目录下? [复制链接]

CString StrSourceFolder=_T("\\硬盘\\新建文件夹");
        CString StrDestFolder=_T("\\Hard Disk");
    TCHAR SourceFolder[MAX_PATH+1]=_T("");
        wcscpy(SourceFolder,StrSourceFolder);
        TCHAR TargetFolder[MAX_PATH+1]=_T("");
        wcscpy(TargetFolder,StrDestFolder);
        SHFILEOPSTRUCT lpFile;
        lpFile.hwnd=GetSafeHwnd();
        lpFile.wFunc=FO_COPY;
        lpFile.pFrom=SourceFolder;
        lpFile.pTo=TargetFolder;
        lpFile.fFlags=FOF_ALLOWUNDO;
        lpFile.fAnyOperationsAborted=FALSE;
        lpFile.hNameMappings=NULL;
        lpFile.lpszProgressTitle=NULL;
        int ReturnValue=SHFileOperation(&lpFile);
        if (ReturnValue==0)
        {
                if (lpFile.fAnyOperationsAborted==TRUE)
                    MessageBox(_T("复制文件夹操作被取消"),_T("信息提示"),MB_OK+MB_ICONWARNING);
        else
                        MessageBox(_T("备份文件夹操作成功"),_T("信息提示"),MB_OK+MB_ICONWARNING);
  
        }
        else
                MessageBox(_T("复制文件夹操作失败"),_T("信息提示"),MB_OK+MB_ICONEXCLAMATION);

以上是在VC中的作法,但是EVC却抱错: error LNK2019: unresolved external symbol __imp__SHFileOperationW referenced in function "protected: void __thiscall CDataDlg::OnButtonCopy(void)" (?OnButtonCopy@CDataDlg@@IAEXXZ)

请问怎么复制呢?急啊

最新回复

在工程里 project-settings-link-ipnut选项卡里 填上ceshell.lib 即可编译通过   详情 回复 发表于 2007-8-4 09:29
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
VC6.0默认选用字符集为MBCS(多字节字符)
而EVC默认选择的字符集为unicode(双字节问题)
可能是这里出了问题,你改下默认字符集看看
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
BOOL CopyFromTo(const TCHAR * source,const TCHAR * dest)
{
        HANDLE hFileFind = INVALID_HANDLE_VALUE;
        WIN32_FIND_DATA wfd;
        TCHAR szTemp[MAX_PATH] = {0};
        TCHAR szTemp2[MAX_PATH]={0};

        _stprintf(szTemp,_T("%s\\*.*"),source);
        hFileFind = FindFirstFile(szTemp,&wfd);
        if(hFileFind == INVALID_HANDLE_VALUE)
                return FALSE;
        do
        {
                if( wfd.cFileName != _T(".") && wfd.cFileName != _T("..") )
                {
                        if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                        {
                                memset(szTemp,0x00,sizeof(szTemp));
                                memset(szTemp2,0x00,sizeof(szTemp2));
                                _stprintf(szTemp,_T("%s\\%s"),source,wfd.cFileName);
                                _stprintf(szTemp2,_T("%s\\%s"),dest,wfd.cFileName);
                                CreateDirectory(szTemp2,NULL);
                                CopyFromTo(szTemp,szTemp2);
                        }
                        else
                        {       
                                memset(szTemp,0x00,sizeof(szTemp));
                                memset(szTemp2,0x00,sizeof(szTemp2));
                                _stprintf(szTemp,_T("%s\\%s"),source,wfd.cFileName);
                                _stprintf(szTemp2,_T("%s\\%s"),dest,wfd.cFileName);
                                CopyFile(szTemp,szTemp2,FALSE);
                        }
                }
        }while(FindNextFile(hFileFind,&wfd));
        FindClose(hFileFind);
        return TRUE;
}
 
 
 

回复

45

帖子

0

TA的资源

一粒金砂(初级)

4
 
有没有包含所需要的库啊
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
在工程里 project-settings-link选项卡里 填上ceshell.lib 即可编译通过
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
在工程里 project-settings-link选项卡里 填上ceshell.lib 即可编译通过


按你这么做,加了之后的错误提示是:cannot open ceshell.lib
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
你的设置路径不对吧,你在SDK路径里搜索下,看这个文件在哪儿,然后设置上路径即可.
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
CopyFile(..,..);
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
在工程里 project-settings-link-ipnut选项卡里 填上ceshell.lib 即可编译通过
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表