文件去重
选一到五个本地目录,按内容找出重复文件——文件名一样不算数,字节一致才算。 重复的副本可以直接删掉。
正在检测浏览器能力…
01选择目录
空文件内容都一样,会凑成一个很大的「重复组」,通常不是你要找的东西。
可以避开
.git、.cache 这类目录,它们文件多、扫起来慢。
在哈希相同的文件之间再做一次逐字节比对。哈希撞车在现实中不会发生,开了会把这些文件多读一遍。
改用普通文件输入框选目录,和 Firefox / Safari 上的行为一致。想先看看结果、不想碰删除按钮时用。
先选一个目录。
准备中
工作方式
先用便宜的办法排除,最后才读内容
- 列出文件,只看大小。不读任何内容。这一步的开销在打开文件句柄上,所以进度按文件个数走。
- 按大小分组。大小独一无二的文件不可能有副本,直接出局——通常九成以上的文件在这里就被排除了。
- 比对前 64 KB。只读一小段就能把绝大多数「大小碰巧相同」的文件筛掉。
- 算内容指纹。剩下的文件各读一遍,分块算 SHA-256,再对拼起来的块摘要取一次,按这个指纹分组。每个文件只读一次,内存占用不随文件变大。
- 逐字节复核(可选)。摘要相同的组再比一次字节。这种组很少,通常只有两个成员。
结果长这样
示例,不是你的文件
将删除
A照片/2023/IMG_0042.jpg
B备份/手机导出/IMG_0042.jpg
每组至少保留一个文件,这条规则写在代码里,不只是界面上拦一下。 同一个文件被两个路径指到(比如 A、B 选了同一个目录)会被识别出来,不会让你「两个都删」。