BCB拷贝文件夹下所有文件和文件夹(深度优先遍历)

来源:互联网 发布:复杂网络 小世界 编辑:程序博客网 时间:2024/06/05 04:51
void dfsCopyFolder(AnsiString pathFrom,AnsiString pathTo){    WIN32_FIND_DATA wfd;//存放文件信息    //目标文件夹不存在则创建    if(!DirectoryExists(pathTo))    {        CreateDirectory(pathTo.c_str(),NULL);    }    AnsiString strFind = pathFrom +"\\*";    //需要添加头文件windows.h    HANDLE handle = FindFirstFile(strFind.c_str(),&wfd);    if(INVALID_HANDLE_VALUE == handle) return;    do    {        AnsiString newPathFrom = pathFrom + "\\" + wfd.cFIleNamel;        AnsiString newPathTo = pathTo + "\\" + wfd.cFIleNamel;        if(wfd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)         {            //如果不是当前文件夹或者是上层文件夹,则递归调用自己继续拷贝            if((strcmp(wfd.cFIleName,".") != 0)&&(strcmp(wfd.cFIleName,".") != 0))            {                dfsCopyFolder(newPathFrom,newPathTo);            }            else//如果是文件则直接拷贝,这里只是简单拷贝了文件内容,希望把文件的其他信息一起拷贝的可以自己实现            {                CopyFIle(newPathFrom,newPathTo,false);            }        }    }while(0 != FindNext(handle,&wfd))//寻找下一个    FindClose(handle);}

0 0