stackyard.tools

文件不上传,全部在你的浏览器里处理

文件去重

选一到五个本地目录,按内容找出重复文件——文件名一样不算数,字节一致才算。 重复的副本可以直接删掉。

正在检测浏览器能力…

01选择目录

空文件内容都一样,会凑成一个很大的「重复组」,通常不是你要找的东西。
可以避开 .git、.cache 这类目录,它们文件多、扫起来慢。
在哈希相同的文件之间再做一次逐字节比对。哈希撞车在现实中不会发生,开了会把这些文件多读一遍。
改用普通文件输入框选目录,和 Firefox / Safari 上的行为一致。想先看看结果、不想碰删除按钮时用。
先选一个目录。

工作方式

先用便宜的办法排除,最后才读内容

  1. 列出文件,只看大小。不读任何内容。这一步的开销在打开文件句柄上,所以进度按文件个数走。
  2. 按大小分组。大小独一无二的文件不可能有副本,直接出局——通常九成以上的文件在这里就被排除了。
  3. 比对前 64 KB。只读一小段就能把绝大多数「大小碰巧相同」的文件筛掉。
  4. 算内容指纹。剩下的文件各读一遍,分块算 SHA-256,再对拼起来的块摘要取一次,按这个指纹分组。每个文件只读一次,内存占用不随文件变大。
  5. 逐字节复核(可选)。摘要相同的组再比一次字节。这种组很少,通常只有两个成员。

结果长这样

示例,不是你的文件
A照片/2023/IMG_0042.jpg
14.2 MB2023-05-01 12:04
B备份/手机导出/IMG_0042.jpg
将删除
14.2 MB2024-02-11 09:30

每组至少保留一个文件,这条规则写在代码里,不只是界面上拦一下。 同一个文件被两个路径指到(比如 A、B 选了同一个目录)会被识别出来,不会让你「两个都删」。