Android 重复文件如何区分?

我们需要找到重复文件并删除,但是现在通过md5判断出重复文件,但是这个耗时太长了 如果数据太多,这个时候如何能减少耗时?

阅读 2.7k
2 个回答

先判断长度. 再挑着判断一些字节, 比如前1000字节. 然后再算哈希.

Nice to meet this
  1. 创建第一个 hash table,key是filesize,value是一个list,list中包含着每一个文件的fullpath;把需要需要处理文件放在这个这个hash table中
  2. 遍历 第一个 hash table如果其中的list.count > 2 就代表有相同大小的文件出现; 那么再创建第二个 hash table, value还是包含这个文件的fullpath的list,同时把这个具有相同大小的文件的前1024字节的hash值与这个文件的大小作为key; 再把list.count > 2 的文件经过处理后放入到 第二个 hash table
  3. 遍历 第二个 hash table如果其中的list.count > 2 就代表有相同大小并且前1024字节相同的文件出现; 然后进行删除即可

这里:finding-duplicate-files-and-removing-them 有完整的代码以及实现细节

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏