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);
}
BCB拷贝文件夹下所有文件和文件夹(深度优先遍历)
最新推荐文章于 2022-07-06 14:24:46 发布