1,copy file failed是什么意思
复制文件失败 。方法一:重新注册以下dll文件。(在开始--运行中输入以下命令即可)
regsvr32 shdocvw.dll
regsvr32 shell32.dll (注意这个命令,先不用输)
regsvr32 oleaut32.dll
regsvr32 actxprxy.dll
regsvr32 mshtml.dll
regsvr32 urlmon.dll
第二个命令可以先不用输,输完这些命令后重新启动windows,如果发现无效,再重新输入一遍,这次输入第二个命令。
方法二:comctl32.dll文件产生的问题。
在升级ie或windows时这个文件可能被替换了,也许新版本的comctl32.dll文件有bug。
找一张windows安装光盘,搜索它,找到一个名为comctl32.dl_的文件,把它拷贝出来,用winrar提取 这个文件为comctl32.dll文件,并覆盖现有文件。
方法三:用方法一重新注册regsvr32 oleaut32.dll时出错或重新注册后也无效。
在windows光盘里提取oleaut32.dll文件,在mdac_ie5.cab文件包里,也是用winrar提取并覆盖现有。
方法四:
原来rpcss服务的servicedll被更改了
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs\Parameters下面
ServiceDLL 被病毒改成了hyj*.dll等不知名的东西,把它改成rpcss.dll就好了
2,MFC中Copyfile的问题。
1.不信你可以看看,系统里的所有文件夹都是只读属性,这个没关系;
2.CopyFile只能拷贝文件,不能拷贝文件夹;
3.若要拷贝文件夹,可参考如下方法:
BOOL CCheckFileDlg::CopyDir(CString strSrcPath, CString strDstPath)
{ // 创建目标文件夹
CreateDirectory(strDstPath,NULL);
CFileFind finder;
// 打开指定的文件夹进行搜索
BOOL bWorking = finder.FindFile(strSrcPath + "\\" + "*.*");
while(bWorking)
{
// 从当前目录搜索文件
bWorking = finder.FindNextFile();
CString strFileName = finder.GetFileName();
CString strSrc = strSrcPath + "\\" + strFileName;
CString strDst = strDstPath + "\\" + strFileName;
// 判断搜索到的是不是"."和".."目录
if(!finder.IsDots())
{
// 判断搜索到的目录是否是文件夹
if(finder.IsDirectory())
{
// 如果是文件夹的话,进行递归
if(!CopyDir(strSrc, strDst))
return false;
}
else
{
// 如果是文件,进行复制
if(!CopyFile(strSrc, strDst, FALSE))
return false;
}
}
}
return true;
}