发布一个Delphi小工具及源码:TreeCompare v1.0 (文件夹比较器),有兴趣去看看!

myy 2007-12-12 02:46:53
练手的小东西,常在BCB版的兄弟也由很多delphi高手,献丑了 :-D

下载:http://www.2ccc.com/article.asp?articleid=4532

//=============================================================================
// TreeCompare - 文件夹比较器
// 作者:苗阳(myy)
// 版本:1.0.0.68
//=============================================================================

TreeCompare 是一款用Delphi(BSD2006)编写的文件夹比较工具,纯属于个人业余作品,
使用无任何版权限制,你可以发邮件到 gmxyb@163.com 索取源代码(不含第三方控件)。

TreeCompare 运行环境:

--Windows2000/xp/2003
--Vista未测试过,Win98估计有点玄,主要是因为用到MessageBoxTimeOut,
一个 Win2K+ 下未公开的API (去掉也很容易...)

TreeCompare 组成文件说明:

--TreeCompare.exe 主程序
--SnapShotFolder.exe 文件夹快照生成工具(与主程序搭配使用,只要在主程序同一
目录下即可)

TreeCompare 安装/卸载:

--即拷即用,没什么多说的 :-)
--双击执行“卸载并删除右键菜单项.bat”卸载

TreeCompare 使用方法:

--第一次使用:

启动主程序TreeCompare.exe,会在系统资源管理器的“文件夹”右键菜单中自动
添加以下项:

"TreeCompare - 制作快照(CRC32校验)"
"TreeCompare - 制作快照(快速)"
"TreeCompare - 打开文件夹比较器"

同时,会在TreeCompare.exe所在的目录下新建文件夹 "SSF",用于存放快照文件。

--文件夹比较:(以比较 D:\MyFolder1 和 D:\MyFolder2 为例)

1.在资源管理器中定位到 D:\MyFolder1,点右键,从菜单中选择:
"TreeCompare - 制作快照(CRC32校验)" 或 "TreeCompare - 制作快照(快速)"
前者对所有的文件都进行CRC32值计算,用于精确比较,但如果文件较多,速度会
相对慢较,后者不对文件进行CRC32值计算,只用文件的 大小和最后修改时间
进行比较,速度比较快,两种方式请根据需要自行选择。

制作快照的过程中,有对话框显示文件夹的总大小,文件数目,进度,时间等...

2.对 D:\MyFolder2 做相同的操作...

3.从D:\MyFolder1或D:\MyFolder2(任意) 的右键菜单中选择:
"TreeCompare - 打开文件夹比较器" 启动主界面,分别点击左右两侧的“打开”
按钮,从对话框中选择 1,2 两步制作的两个快照(有明显的时间 和 文件夹名
信息列表显示),双击载入到左右两侧的Tree中。

4.点击顶部的“比较!”按钮,两个 Tree 中会显示比较的结果,并且两个 Tree
进入同步状态,比较结果说明:

绿色文字 -- 相同项
红色文字 -- 不同项(修改项),大小和最后修改时间不同,
或 CRC32 值不同(如果使用CRC32快照)
红色文字+粗体 -- 不同项(修改项),并且是 最后修改时间 更晚的
蓝色文字 -- 仅本侧存在,对方侧不存在,对应对方侧的
“灰色文字+删除线”
灰色文字+删除线 -- 仅对方存在,本侧不存在,对应对方侧的“蓝色文字”

5.比较结果的过滤查看(主界面顶部按钮控制):

显示相同 -- 控制所有“相同项”(两侧绿色)的显示
显示修改 -- 控制所有“修改项”(两侧红色)的显示
显示仅左侧存在 -- 控制所有“仅左侧存在项”(左侧蓝色)的显示
显示仅右侧存在 -- 控制所有“仅右侧存在项”(右侧蓝色)的显示
统计信息 -- 控制下方“统计信息”面板的显示

TreeCompare 特色及不足:

--使用起来非常方便直观、界面简单明了

--文件夹的比较是通过比较“文件夹快照”方式实现的,“文件夹快照”实际上只是
“SSF”文件夹下的一个文本文件而已,这种设计带来的好处是:

你可以对同一个文件夹比较不同时间点的快照,了解到此文件夹内文件有什么变化。
“文件夹快照”可以被复制到其他机器上进行“异地虚拟比较”,比较适合于含有
大量ASP,JSP文件的Web服务器环境下文件检查和更新。

--可以免费得到源代码,如果你有兴趣,可以自己在现有的程序基础上开发更多的
功能,比如:把它变成一个备份工具,一个文件夹同步工具,甚至是一个简单的
“文件更新日志”自动生成工具...

TreeCompare只是本人利用业余时间的练手写的半成品,水品有限,抛砖引玉罢了,
部分功能也压根没有实现(比如“修改日志”)...

不要拿它与著名的BeyondCompare来比较,显然不是一个级别的东西,事实上,它也
只实现了 BeyondCompare 很小的一部分功能。


TreeCompare 所用到的第三方控件:

--VirtualTree 4.5.4 Free,MPL http://www.soft-gems.net
主界面的核心部分
--FastMM 4.78 Free http://fastmm.sourceforge.net
用于程序检查内存泄漏...(懂的人很容易拿掉,不多说了)
--Raize 4.3.1 商业 http://www.raize.com
用于界面美化...
...全文
644 点赞 收藏 56
写回复
56 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang-先生 2010-08-20
发现个小错。
如果文件夹是空的,这里就除0了。
rzpgbScanning.Percent := (BytesScan * 100) div BytesAll;

回复
paulin 2008-09-23
多谢分享
回复
kinglh 2008-09-22
友情支持!
回复
柯本 2008-09-17
友情支持!
回复
痞子酷 2008-09-17
接分,谢谢楼上散发

!!
回复
queshiybb 2008-09-16
up
回复
lertulo 2008-09-16
接分`
回复
不得闲 2008-09-15
好东西,顶一下
回复
JF
回复
jacknes009 2008-09-14
MIDDLE AUTUMN DAY
回复
fbmsyu 2008-09-12
支持!
我用!
回复
tangyulong520 2008-09-12
中秋快乐!
回复
海嵌 2008-09-12
支持
回复
hemiya 2008-09-12
谢谢lz分享
回复
郭建宝 2008-01-10
up up
回复
阿阌 2008-01-10
不错不错,看看先!
回复
ydlchina 2008-01-10
支持
回复
cczlp 2008-01-10
好东西
回复
lsyxp17 2008-01-09
感谢无私分享
回复
goodmrning 2008-01-09
回复
发动态
发帖子
茶馆
创建于2007-08-02

525

社区成员

C++ Builder 茶馆
申请成为版主
社区公告
暂无公告