CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

如何删除一个文件夹?

楼主qwx2000(weiwei)2006-03-15 15:32:38 在 C++ Builder / 基础类 提问

在Broland   C++中如何删除一个文件夹? 问题点数:20、回复次数:7Top

1 楼LngDotin(水拍云)回复于 2006-03-15 15:37:51 得分 0

RemoveDir  
  删除指定的目录,如果操作成功,返回真,否则返回假,函数原型如下:  
  bool   __fastcall   RemoveDir(const   AnsiString   Dir);Top

2 楼moudy(勇士(绝对盗版))回复于 2006-03-15 15:38:12 得分 0

先删除里面的文件,再删文件夹~~~Top

3 楼qwx2000(weiwei)回复于 2006-03-15 15:57:12 得分 0

如何删除一个文件夹内的所有文件?Top

4 楼yz20050510(小)回复于 2006-03-15 17:02:02 得分 0

bcb中应该可以直接清楚文件夹中的所有文件,参考一下帮助信息Top

5 楼XBox360(菜)(鸟)回复于 2006-03-15 18:15:28 得分 20

用递归来做,先删除文件夹里面的文件,然后删除空文件夹!  
   
  bool   DeleteDirectoryEx(const   AnsiString   &P)  
  {  
          if(P.IsEmpty()   ||   P.Length()<4)  
                  return   false;                 //   参数长度必须大于3,即不能为磁盘根目录或空白  
   
          int   len=P.Length();  
          char   *Path=P.c_str();  
   
          AnsiString   Dir=Path;  
          if(Path[len-1]!='\\')  
                  Dir=Dir+'\\';  
   
          AnsiString   Files=Dir   +   "*.*";  
          WIN32_FIND_DATA   wfd;  
          HANDLE   hFind=FindFirstFile(Files.c_str(),&wfd);  
          bool   Ret=true;  
          AnsiString   Tmp;  
          if   (hFind!=INVALID_HANDLE_VALUE)  
          {  
                  bool   bFind=true;  
                  while   (bFind)  
                  {  
                          if(wfd.cFileName[0]!='.')   //   .   ..  
                          {  
                                  Tmp   =   Dir   +   wfd.cFileName;  
                                  if   (wfd.dwFileAttributes   &   FILE_ATTRIBUTE_DIRECTORY)  
                                  {   //   递归删除所有子目录  
                                          Ret   =   Ret   &&   DeleteDirectoryEx(Tmp.c_str());  
                                  }  
                                  else  
                                  {   //   删除所有文件  
                                          //   属性设置为Normal  
                                          SetFileAttributes(Tmp.c_str(),FILE_ATTRIBUTE_NORMAL);  
                                          Ret   =   Ret   &&   DeleteFile(Tmp.c_str());  
                                  }  
                          }  
                          bFind   =   FindNextFile(hFind,&wfd);  
                  }  
                  FindClose(hFind);  
          }  
          if   (Ret)  
                  return   RemoveDirectory(Path);  
          return   false;  
  }Top

6 楼linkboy2004(linkboy)回复于 2006-03-16 08:42:19 得分 0

RemoveDir  
  删除指定的目录,如果操作成功,返回真,否则返回假,函数原型如下:  
  bool   __fastcall   RemoveDir(const   AnsiString   Dir);  
   
  直接删除文件和文件夹的!!Top

7 楼xiaobubu()回复于 2006-03-24 17:55:19 得分 0

应该是递归算法的,先删除里面的文件和文件夹,最后RemoveDir();Top

相关问题

  • 如何删除文件夹?
  • 如何删除非空文件夹。
  • PB如何删除一个文件夹?
  • 如何在Delphi里删除文件夹?
  • 如何删除 System Volume Information 文件夹
  • 在DOS中如何删除文件夹?
  • 如何删除文件夹????在线等
  • 如何删除非空文件夹?
  • 如何删除文件夹(文件夹包含文件和子目录)
  • 如何删除掉文件夹名字为空格的文件夹?

关键词

  • 文件夹
  • 文件
  • 删除
  • removedir
  • 返回
  • const ansistring
  • 所有
  • bool

得分解答快速导航

  • 帖主:qwx2000
  • XBox360

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo