• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++递归删除一个目录实例

C++递归删除一个目录实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++游戏开发实例,c++实例开发,linux c++项目实例,c++程序实例,c++项目开发实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C++递归删除一个目录的实现方法。分享给大家供大家参考。具体方法如下:

CFindFile的使用框架如下:

{ 
   CFileFind finder; 
 
   // build a string with wildcards 
   CString strWildcard(pstr); 
   strWildcard += _T("\\*.*"); 
 
   // start working for files 
   BOOL bWorking = finder.FindFile(strWildcard); 
 
   while (bWorking) 
   { 
      bWorking = finder.FindNextFile(); 
 
      // skip . and .. files; otherwise, we'd 
      // recur infinitely! 
 
      if (finder.IsDots()) 
         continue; 
 
      // if it's a directory, recursively search it 
 
      if (finder.IsDirectory()) 
      { 
         CString str = finder.GetFilePath(); 
         TRACE(_T("%s\n"), (LPCTSTR)str); 
         Recurse(str); 
      } 
   } 
 
   finder.Close(); 
}</div>

递归删除代码如下:

void RecursiveDelete(CString strDir) 
{ 
    CFileFind ff; 
    CString strPath; 
    strPath = strDir; 
    if (strPath.Right(1) != '\\') 
    { 
        strPath += '\\'; 
    } 
    strPath += "*.*"; 
 
    BOOL bWorking = ff.FindFile(strPath); 
    while (bWorking) 
    { 
        bWorking = ff.FindNextFile(); 
 
        // skip . and .. files; otherwise, we'd 
        // recur infinitely! 
        if (ff.IsDots()) 
            continue; 
 
        // if it's a directory, recursively search it 
 
        if (ff.IsDirectory()) 
        { 
            //递归目录 
            CString str = ff.GetFilePath(); 
            TRACE(_T("%s\n"), (LPCTSTR)str); 
            RecursiveDelete(str); 
            //删除目录 
            ::SetFileAttributesA(str, FILE_ATTRIBUTE_NORMAL); 
            ::RemoveDirectory(str); 
        } 
        else 
        { 
            //删除文件 
            CString str = ff.GetFilePath(); 
            TRACE(_T("%s\n"), (LPCTSTR)str); 
            ::SetFileAttributes(str, FILE_ATTRIBUTE_NORMAL); 
            ::DeleteFile(str); 
        } 
    } 
 
    ff.Close(); 
 
} 
int main(int argc, char *argv[]) 
{ 
    RecursiveDelete("C:\\20_128\\"); 
    return 0; 
}</div>

希望本文所述对大家的C++程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++ 将文件数据一次性加载进内存实例代码
  • C++ 面试题翻译电话号码实例代码
  • C++中实现把表的数据导出到EXCEL并打印实例代码
  • C++实例输入多行数字到数组
  • 实例讲解C++编程中对设计模式中的原型模式的使用
  • C++基础知识实例解析(一)
  • C++双向循环列表用法实例
  • C++读写INI配置文件的类实例
  • C++广播通信实例
  • C++进程间共享数据实例

相关文章

  • 2022-04-30什么是源文件?
  • 2017-05-28C语言中一些将字符串转换为数字的函数小结
  • 2017-05-28C++基础入门教程(五):new和delete
  • 2017-05-28C++封装远程注入类CreateRemoteThreadEx实例
  • 2017-05-28C++实现二叉树遍历序列的求解方法
  • 2017-05-28从汇编看c++中extern关键字的使用
  • 2017-05-28原创的C语言控制台小游戏
  • 2017-05-28VC中CWinThread类以及和createthread API的区别分析
  • 2017-05-28C++实现自顶向下的归并排序算法
  • 2017-05-28C语言求连续最大子数组和的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 概率的问题:使用递归与多次试验模拟的分析
    • C语言实现BMP转换JPG的方法
    • VC中CWinThread类以及和createthread API的区别分析
    • c++ 构造函数中调用虚函数的实现方法
    • VC下通过系统快照实现进程管理的方法
    • C++实现顺序表的方法
    • 位运算实现十进制转换为二进制
    • 方阵顺时针旋转的实现代码
    • C++中 STL list详解及简单实例
    • 基于list循环删除元素,迭代器失效的问题详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有