查看: 12783|回复: 73
收起左侧

[原创工具] 【自己编的小软件】冗余文件检测【20101228,发布正式版!(附部分源代码)】

  [复制链接]
wangfuwei
发表于 2010-12-21 11:56:58 | 显示全部楼层 |阅读模式
本帖最后由 wangfuwei 于 2010-12-28 18:39 编辑

20101228 18:30 发布最终正式版(附部分源代码)

最近在学数据容灾技术,讲到了删除硬盘上的冗余文件,留了一个调查报告的作业,我闲着没事儿就自己写了一个小软件来实现这个功能。



介绍:
这个软件实现的功能是检测某一个目录内的全部相似或相同的文件。可能很多人没有意识到这个功能的作用。实际上,随着使用电脑工作时间变长,我们的硬盘上难免存在同一个文件的多个版本,变成我们不敢随便删除的垃圾文件。特别的,如果这些垃圾文件不只是简简单单的Word文档等小文件,而是在特殊工作中产生的大文件,那么这种空间的浪费是很可观的。而最重要的是,当我们试图对磁盘分区进行完整备份时,这样的垃圾文件会使镜像文件非常臃肿。

我编写的这个软件实现的就是检测这样的冗余文件的功能。相比同类的其他软件,我的软件体积很小,而更重要的是,我自己设计的算法更适合于文件量大、文件冗余度低的日常应用情况。通过两级哈希运算,首先筛选出相似文件,再在其中判断完全相同的文件组,保证了避免对非冗余大文件的大量时间运算。

有兴趣的朋友不妨下载使用以下,如果方便,不妨反映一下bug和功能改进建议!


20101221 14:30 更新1:
更正了验证超大文件时的内存越界问题


20101221 23:00 更新2:
增添了检索子目录、排除空文件以及超大文件的选项,并重新安排了界面。


20101222 10:00 更新3:
(1)、增添了“仅进行相似性检测”功能;
(2)、将检测文件的模块设置为用户线程,这样与界面线程分离,防止在进行扫描时界面死锁;
(3)、将结果显示改为由纯文本改为ListBox形式显示。


20101222 12:10 更新4:
(1)、增添了软件运行状态的指示;
(2)、考虑到文件路径可能比较长,将显示结果的两个列表框改为上下排列。


20101222 20:30 更新5:
(1)、完全重写了相同文件匹配分组的并查集算法,现在程序占的虚拟内存量锐减,因而速度提高。


20101223 13:40 更新6:
(1)、据反映,在执行检索的过程中再按“执行检索处理”按键会造成程序卡死(线程之间冲突),因此设定检索过程中按键变灰不可用,即只允许执行单个检索实例;
(2)、将相似性判断的条件稍微放宽(相同性判断不变),以换取整体检索速度的提升。


20101225 16:00 更新7:
(1)、改写了文件列表形式,增加了复选框,现在可以选中列表中的文件并直接删除


20101226 22:00 更新8:
(1)、增加了一轮文件大小比对,使得程序最终执行效率大幅提高,若干次实测当中,扫描时间平均为原来的2%~5%!


20101227 22:00 更新9:
(1)、增进了读写硬盘的效率,减少了读写文件的频率;
(2)、将结果显示改为单栏,更加简洁直观






现在已经将核心算法及程序结构的源代码上传为附件,有学习讨论需求的朋友可直接下载。出于附件大小的限制,以及防止代码被某些同学不当使用,所以暂时不上传完整的工程,有兴趣的朋友可以很容易由附件的代码写出自己的程序。



评分

参与人数 3经验 +55 人气 +2 收起 理由
tawny2008 + 55 新年快乐
小小梦 + 1 效率不错
wo1234 + 1 原创内容

查看全部评分

fkrs10
发表于 2010-12-21 13:42:36 | 显示全部楼层
有些意思。支持一下。
hopetobe
发表于 2010-12-21 13:51:09 | 显示全部楼层
收下了
我是新手
发表于 2010-12-21 13:58:20 | 显示全部楼层
收下不退,谢谢楼主
prawnliu
发表于 2010-12-21 14:04:25 | 显示全部楼层
求开源
lovehhy
发表于 2010-12-21 14:31:50 | 显示全部楼层
挺好的,360Amigo也有这个功能,重复文件查找,速度很快,不知道LZ的速度如何
wab10312
发表于 2010-12-21 14:38:00 | 显示全部楼层
求源代码啊
败亦枭雄
发表于 2010-12-21 15:52:19 | 显示全部楼层
不错,感谢楼主分享。
tawny2008
发表于 2010-12-21 18:39:20 | 显示全部楼层
试用了一下,不能查找子目录,实用性一般,能改进成多线程并搜索子目录的话,那还可以
wangfuwei
 楼主| 发表于 2010-12-21 23:16:31 | 显示全部楼层
新增加了跳过检测空文件、大文件,以及递归扫描全部子目录的功能,欢迎尝试
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-23 09:16 , Processed in 0.138243 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表