我用了一个函数如下:
int CDirTreeCtrl::CopyDirectory(LPCTSTR PathFrom, LPCTSTR PathTo) //拷贝文件夹  
{
//把指定目录下的所有文件拷到另一个指定目录
SHFILEOPSTRUCT op; 
ZeroMemory(&op, sizeof(op)); 
op.lpszProgressTitle = "拷贝模板";
op.hwnd = NULL; 
op.wFunc = FO_COPY; 
op.pFrom = PathFrom; 
op.pTo = PathTo;  
op.fFlags = FOF_NOCONFIRMATION;// | FOF_RENAMEONCOLLISION;
op.fAnyOperationsAborted = FALSE; 
op.hNameMappings = NULL; 
int Re = SHFileOperation(&op); 
return Re;  
}当我这样调用这个函数的时候总是读取文件出错,是何缘故?
CopyDirectory(a.GetBuffer(a.GetLength()+1), b.GetBuffer(b.GetLength()+1)) ;a和b都是本代码段所在函数传进来的CString类型的参数

解决方案 »

  1.   

    但是调用 CopyDirectory("C:\\aa","d:\\aa") 就可以拷贝
      

  2.   

    CopyDirectory(strOldFolder.GetBuffer(strOldFolder.GetLength()+2), strNewFolder.GetBuffer(strNewFolder.GetLength()+2));
    strOldFolder.ReleaseBuffer();
    strNewFolder.ReleaseBuffer();int CXXX::CopyDirectory(LPCTSTR PathFrom, LPCTSTR PathTo)
    {
    //把指定目录下的所有文件拷到另一个指定目录
    SHFILEOPSTRUCT op; 
    ZeroMemory(&op, sizeof(op)); 
    op.lpszProgressTitle = _T("移动账户目录");
    op.hwnd = NULL;
    op.wFunc = FO_COPY; 
    op.pFrom = PathFrom; 
    op.pTo = PathTo;  
    op.fFlags = FOF_SILENT | FOF_NOCONFIRMATION;// | FOF_RENAMEONCOLLISION;
    op.fAnyOperationsAborted = FALSE; 
    op.hNameMappings = NULL; 
    int Re = SHFileOperation(&op); 
    return Re;  
    }
      

  3.   

    问题出现了由于我用的编译器是 VS.NET 2003 这段代码可以编译但是始终出错:无法复制源文件,所以我郁闷至今.今天有空,用VC6.0调试了一下,成功了,相同的代码在VS.NET 2003下却出现了问题.唉,说什么好呢,有没有高人来解释一下!!!