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

BCB 专栏收录该内容
6 篇文章 0 订阅
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
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值