调用CopyFileEx函数复制access数据库.
用四台机器试过程序,三台机器没问题.
其中一台机器出现复制文件出现2份.如:
//m_strBeginFullPath 值是 "c:\Test"
//m_strEndFullPath   值是 "d:\NewTest"
    if(!CopyFileEx(pMainDlg->m_strBeginFullPath,pMainDlg->m_strEndFullPath,
(LPPROGRESS_ROUTINE)CopyProgress,(LPVOID)&pMainDlg->m_CopyDB,FALSE,
COPY_FILE_FAIL_IF_EXISTS))
{
return -1;
}
出现问题的一台机器复制完成后, c盘有Test,d盘有Test和NewTest两个access数据库文件. 这是什么原因? 其它三台机器则没问题.
出现问题的机器也是xp系统 

解决方案 »

  1.   

    不会有这种问题吧?调试验证一下,在CopyFileEx这行设置断点,执行到这里后,先把D:\Test删除,然后按F10,再看有没有建立D:\Test目录?
      

  2.   

    我也觉得不会有这样的问题, 查看了msdn也没发现有这样错误, 程序中只有
    这一个地方用到复制函数, 出现问题也只有这里了..出现问题的机器现在是中毒状态,只是有时很卡,系统盘是d盘,但这也不至于会导致
    出现复制2份文件的问题吧. 
      

  3.   

    如果是中毒状态就不好说了,很可能是病毒搞出来的,CopyFileEx是不会复制两份的。
      

  4.   

    病毒可能会hook一些这种操作,然后自己复制等·