MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
来源:互联网 发布:vue.js监听页面离开 编辑:程序博客网 时间:2024/06/10 00:37
最近在看MFC 的文件操作,从网上淘了一本比较讲MFC文件操作比较全的电子书,然后开始试手。在删除文件夹时,遇到了问题,通过查看MSDN和网友的论坛留言,自己总算是解决了这个问题,现在与大家共享。
MFC中提供了删除文件夹的一个封装函数 RemoveDirectory(LPCTSTR lpPathName),我们只要把要删除的文件夹的路径传进去就可以删除了,貌似一切如此简单。我象征性的建立一个文件夹,然后在程序中删除了它,呵呵,一下就成功了。正当我要转手去做另外的操作时,我喜欢乱尝试的毛病就鬼使神差的让我做了这么一件事,在这个文件夹下我添加了几个新的子文件夹以及一些文件,这下我再试我的程序时就出现问题了,删不掉了!!
原来-------RemoveDirectory(LPCTSTR lpPathName)欺骗了我,他只能删除空的文件夹,这下我有问题了,怎么才能删除一个文件夹,即便其中含有无数的子文件和子文件夹呢?
RemoveDirectory(LPCTSTR lpPathName) 的这种行为其实是情有可原的,它为我们的操作提供了一种安全级别的控制。
但我现在就想删除非空文件夹 , 怎么办呢????
递归删除!!
看到论坛上有人提出这一思想,我感觉很有道理,于是就基于这一思想,着手实现它!
首先将文件夹下所有内容删除,再调用RemoveDirectory(LPCTSTR lpPathName)不就可以实现了么!!
为此我专门写了一个函数来递归删除一个文件夹下的所有内容!
请看我的代码
定义一个 CFileFind 类对象 来找文件夹下的所有子文件和子文件夹,然后依次判断它是 文件 还是 文件夹,
如果是文件 就直接删除了,如果是文件夹就递归调用 该 myDeleteDirectory()函数,来删除其内容。然后在调用RemoveDirectory()来删除这个文件夹,这样不就好了么?
为了测试我的程序是否是正确的,我创建了一个文件夹 ForVcTest,在其中添加了许多的子文件和文件夹,又在子文件夹中添加了文件和文件夹。写了这么一段测试程序,诸位请看:
测试结果出来了,我眼看着一个内容丰富的文件夹,就在我的程序运行后消失了!真是很舒心啊!呵呵!
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
- MFC 中 删除一个非空文件夹
- MFC 删除非空文件夹
- MFC 删除一个非空文件夹 新建文件夹
- [VC/MFC]删除文件夹(非空目录)及其中所有文件的源代码
- MFC 中打开 文件,文件夹,以及删除文件,文件夹操作
- [VC/MFC]删除文件夹(非空目录)
- MFC中删除包含文件的文件夹
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- MFC文件、文件夹操作
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- MFC 文件,文件夹操作
- MFC 删除文件夹或文件
- Memcache协议中文版
- 将字符串中的小写字母排在大写字母的前面
- Windows环境下配置+运行red5源码+AS3连接red5简单示例
- magento安装 “PHP Extension "curl" must be loaded”
- 思考mysql内核之初级系列8---innodb的list算法
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
- 使用MFC自动化操作Excel文档
- C语言中位域(bit struct)和#pragma pack(n)指令对其影响
- 关于大爆炸的技术贴
- 自定义服务器控件中的事件
- Java与ActionScript类型对应表
- printk 使用方法
- ARMPowerManage
- 找出被修改过的数字