您现在的位置: IT技术文档中心 >> 文档资源 >> 编程语言及开发环境 >> C/C++ >> 文档正文
C语言中deltree程序的实现
作者:未知 文章来源:互联网 点击数: 更新时间:2007-7-22 2:57:20

     我是出生在dos流行的年代,所以对于以前dos中提供的一些软件很怀念,想必用过dos的朋友都知道deltree这个程序吧,这个程序提供了用户快速删除指定目录及其子目录中的所有文件快捷功能。因为用惯了dos的缘故,有时候总觉得这样的删除文件方式比起windows中删除文件夹的方法方便的多,但是现在安装完的windows都已经没有这些程序了,我想一些经典的程序还是应该留下吧,特此编写了一个类似功能的程序,当然论功能的话可能没有真正dos中提供的deltree强大,只是作为一个数据结构的应用吧,希望大家共同学习讨论。

代码导读:
我程序编写得顺序是这样的,首先实现deltree.h
1)编写数据结构
2)编写DrawPhy2LogTree()函数
3)编写DisplayTree()函数,为了进行测试
4)添加调试宏__DEBUG
5)添加最大栈容量宏MAX_STACK_SIZE
6)编写DelTree()函数
编写deltree.cpp和deltree.h其实是同步进行的,当写完DrawPhy2LogTree和DisplayTree时就进行main()函数编写,以便调试,以后就是每写一个函数进行测试,最后将__DEBUG注释掉,真正实现删除功能(在调试期间不对文件进行删除操作也是为了安全考虑)
刚完成时的作品DisplayTree使用递归方法来打印树的,后来发现若文件夹层次太深的话,会递归算法会导致栈满而溢出,就改进成为使用栈的方法进行遍历。
若大家有兴趣的话,可以根据我上面的流程进行代码导读,若能发现问题或是对算法的改进有更好的思路,请及时回复指教,不胜感激,谢谢。

在这里祝大家新年快乐,身体健康,学习进步,工作顺利

早上用了下这个程序发现搜索过程中若发现有特殊属性的文件会导致软件崩溃,特此做了个新版deltree,因为使用VC++做的,而且调用了windows中的一些函数,故将其版本称之为32位deltree,即命名为deltree32

原理还是一样,更新如下
* 添加错误处理
* 废除固定长度的栈,使用动态长度的栈
* 减少数据结构操作时的代码冗余(16位版又在创建树的节点和删除节点时存在冗余),现在将这两个操作封装到函数中。
* 废除main()函数中的路径缩紧算法(这个算法主要针对在dos下文件名或文件夹名不能超过8个字符的限制),添加了长路径合并算法(也就是说从参数1一直到argc-1都可以用作路径,中间的空格被自动合并到长路径中)

[1] [2] [3] 下一页

网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
| 设为首页 | 加入收藏 | 联系站长 | 版权申明 | 雁过留声 | 会员中心 |