2020年2月

GitHub 地址:https://github.com/PrintNow/FileDeduplication

已编译好二进制文件:https://www.lanzous.com/b00z87aja


FileDeduplication | 文件去重

使用 Go 语言实现的文件去重,单线程
内存占用,越到后面可能占用越大,扫描777个文件到后期内存占用达到 100~150 MB
刚入门 Go,可能有很多不规范的、冗余的代码,接受指正

实现思路

遍历文件下所有文件,计算文件 MD5值,然后压入 map,map 结构大概是这样的

  key    :  value
------------------
文件路径 : 文件MD5值

然后根据当前 计算的 MD5值 在 map 中寻找,如果找到了,就判定文件有重复
将当前 重复文件路径,写入到 重复文件清单

删除重复文件:
按行读取 重复文件清单,然后执行删除操作

安装

使用编译好的二进制文件可以忽略这一步
已编译好二进制文件:https://www.lanzous.com/b00z87aja

下载 fileCheck.go 文件,然后安装 go 环境进行编译

执行以下命令

go build fileCheck.go

编译完成你将得到一个 二进制文件

  • Windows 平台 将得到一个名为 fileCheck.exe 二进制文件
  • Linux、Android 平台 将得到一个名为 fileCheck 二进制文件
  • ...

- 阅读剩余部分 -