C++ 删除指定路径文件夹

本文介绍了一个使用C语言实现的递归删除指定路径下文件夹及其内容的方法。该方法通过遍历目标文件夹内的所有文件及子文件夹,并分别进行删除操作。对于每个子文件夹,采用同样的递归方式处理;对于文件,则直接调用DeleteFile函数进行删除。最终如果需要,还会删除最外层的目标文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


/************************************************************************/
/* 删除指定路径下的文件夹
/* DirName: 文件路径
/* bNeedDel: 是否删除文件夹                                         
/************************************************************************/
void DeleteDirectory(char *DirName, bool bNeedDel)
{
 CFileFind tempFind;   
 char tempFileFind[MAX_PATH];   
 sprintf(tempFileFind,"%s\\*.*",DirName);   
 BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);    //判断文件夹下是否存在文件
 while(IsFinded)    //存在
 {       
  IsFinded=(BOOL)tempFind.FindNextFile(); //判断是否存在下一个文件      
  if(!tempFind.IsDots())       
  {           
   char foundFileName[MAX_PATH] = {0};           
   strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH));           
   if(tempFind.IsDirectory())           
   {               
    char tempDir[MAX_PATH] = {0};               
    sprintf(tempDir,"%s\\%s",DirName,foundFileName);              
    DeleteDirectory(tempDir, bNeedDel);           
   }           
   else           
   {               
    char tempFileName[MAX_PATH] = {0};               
    sprintf(tempFileName,"%s\\%s",DirName,foundFileName);               
    DeleteFile(tempFileName);           
   }       
  }   
 } 
 
 tempFind.Close(); 
 
 if (bNeedDel)
 {
  RemoveDirectory(DirName);
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值