有一个2Tb的硬盘,里面存放的满满都是.doc文件。

[复制链接]
查看11 | 回复1 | 2012-9-20 15:31:47 | 显示全部楼层 |阅读模式
我的思路:(当然我也是菜鸟,不一定对)分两部分,一部分是文件内容相同的,一部分为文件名相同的。检查文件内容是否相同:对每个文件的内容进行hash,当然不一定是文件的全部内容,可以只对前512K的内容作hash,以减少计算量。然后比对文件的hash值。检查文件名是否相同:将文件名取出来,然后比对文件名。由于有2TB的文件,所以文件数量也是很庞大的, 如果一个文件1MB,那么会有2M个文件,如果hash值有128位,那么每个hash值将占16B,所以存储所有文件的hash值需要至少32M的内存。对于文件名的存储,也将会是这样的数量级。接下来就是如何用比较快的算法,在这些串中找到重复的内容了。找重复的内容,我能想到的就是bit-map...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行