我们需要找到重复文件并删除,但是现在通过md5判断出重复文件,但是这个耗时太长了 如果数据太多,这个时候如何能减少耗时?
第一个
hash table,key是filesize,value是一个list,list中包含着每一个文件的fullpath;把需要需要处理文件放在这个这个hash table中第一个
hash table如果其中的list.count > 2 就代表有相同大小的文件出现; 那么再创建第二个
hash table, value还是包含这个文件的fullpath的list,同时把这个具有相同大小的文件的前1024字节的hash值与这个文件的大小作为key; 再把list.count > 2 的文件经过处理后放入到 第二个
hash table第二个
hash table如果其中的list.count > 2 就代表有相同大小并且前1024字节相同的文件出现; 然后进行删除即可这里:finding-duplicate-files-and-removing-them 有完整的代码以及实现细节
1 回答1.3k 阅读
1 回答1.1k 阅读
2 回答894 阅读
1 回答1k 阅读
1 回答863 阅读
1 回答885 阅读
888 阅读
先判断长度. 再挑着判断一些字节, 比如前1000字节. 然后再算哈希.