vc++ 拷贝文件夹

BOOL CUpdateMiDlg::CopyDirectory(CString SrcDirectry, CString DstDirectory)  
{  
    CreateDirectory(DstDirectory,NULL); //创建目标文件夹  
    //AfxMessageBox("创建文件夹"+target);  
    CFileFind finder;
    CString stPath;  
	BOOL re=FALSE;
	stPath.Format(_T("%s/*.*"),SrcDirectry);    
    BOOL bWorking =finder.FindFile(stPath);  
    while(bWorking)
    {  
        bWorking = finder.FindNextFile();  
        if(finder.IsDirectory() && !finder.IsDots())//是文件夹 而且 名称不含 . 或 ..  
        { 
            //递归创建文件夹+"/"+finder.GetFileName()
            CopyDirectory(finder.GetFilePath(),DstDirectory+_T("/")+finder.GetFileName());   
        }  
        else//是文件 则直接复制 
        {  
			CString stSrcFile=finder.GetFilePath();
			BOOL result=(GetFileAttributes(stSrcFile) & FILE_ATTRIBUTE_DIRECTORY);
			if (!result)
			{
			   re=CopyFile(finder.GetFilePath(),DstDirectory+_T("/")+finder.GetFileName(),FALSE);  
			}
		}  
    }  
	return re;
}

你可能感兴趣的:(vc++,CopyDirectory)