2020年2月
Golang 文件去重 - 支持多平台 Windows、Linux、MacOS
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
二进制文件 - ...