精确重复文件是指内容逐字节都与另一个文件相同的文件。你可以在 Windows 中先按大小对文件分组,再比较每组文件的加密哈希值,从而找出重复文件;一条简短的 PowerShell 命令就能完成此操作。然后,每组保留一份副本,将其他副本通过回收站删除,并避开应用所依赖的文件夹。文件名和日期本身不能证明文件重复,因此不要据此做决定。
什么才算重复文件
有三种不同情况都会被称为重复文件,其中只有一种可以放心按重复文件处理。
- 名称相同。不同文件夹中的两个文件都叫
report.docx,内容却可能是不同的文字。 - 大小相同。两张照片可能碰巧大小相同;重命名的副本大小不变,但名称已经不同。
- 内容相同。每个字节都匹配。这是唯一能证明删除其中一份不会丢失任何内容的检查方式。
内容完全相同的检查无法找到相似但不完全相同的文件。以不同画质重新保存的照片,或只改了一个词的文档,其哈希值都不同。这是该方法的局限,但也正因如此,该方法更安全:它绝不会将内容不同的两个文件标记出来。
哈希值为何有效
哈希函数会将文件内容转换成简短的指纹。微软的 Get-FileHash 文档指出,如果两个文件的哈希值相同,那么它们的内容也相同;还指出该 cmdlet 默认使用 SHA256 算法(于 2026 年 10 月核查)。先检查文件大小可以节省时间,因为大小不同的两个文件不可能相同,因此只需对大小相同的文件计算哈希值。
选择要检查的位置
扫描前先确定检查范围。适合检查的地方是你自行整理的文件夹,例如照片库、音乐文件夹、“下载”文件夹或外置驱动器上的档案。不适合检查的地方是那些本来就会有意存放重复副本的文件夹。
C:\Windows,Program Files和ProgramData。程序会保留自己的共享文件副本,删除其中一个可能导致程序无法启动。- 项目和软件包文件夹,例如软件项目中的依赖项文件夹;这些文件夹中的每份副本都可能是工具所必需的。
- 云同步文件夹,除非你已了解哪些文件实际存储在这台电脑上(见下文)。
- 备份。为了安全而保留的副本看起来与重复文件完全相同。
使用 PowerShell 查找完全相同的重复文件
此方法只读取文件,不会删除任何内容。打开 Windows PowerShell 或 终端,将文件夹路径替换为你自己的路径,然后运行命令。包含大量大文件的文件夹可能需要很长时间才能处理;我们没有在每个 Windows 10 和 11 版本上测试过这条确切命令。
Get-ChildItem "D:\Photos" -Recurse -File -ErrorAction SilentlyContinue |
Where-Object { $_.Length -gt 0 } |
Group-Object Length |
Where-Object { $_.Count -gt 1 } |
ForEach-Object { $_.Group } |
Get-FileHash |
Group-Object Hash |
Where-Object { $_.Count -gt 1 } |
ForEach-Object { $_.Group | Select-Object Hash, Path }
该命令依次执行五项操作:列出文件夹下的文件并跳过空文件,因为空文件看起来都一样;按文件大小分组,只保留出现次数多于一次的大小;计算这些文件的 SHA256 哈希值;按哈希值分组;最后输出每个哈希值出现次数多于一次的文件对应的哈希值和路径。哈希值相同的文件就是完全相同的重复文件。
如果没有任何输出,该文件夹中就没有完全相同的重复文件。如果输出很长,请每次处理一组。相关 cmdlet 的说明见 Get-ChildItem 和 Get-FileHash.
谨慎处理 OneDrive 和其他云文件夹
仅联机文件不会占用电脑空间,因此删除它的重复文件副本不会释放本地空间。微软的 OneDrive 文件按需页面 指出,打开仅联机文件会将其下载。用于计算哈希值并读取每个文件的脚本,因此可能会触发大量下载;除非你希望下载这些文件,否则请将云文件夹排除在扫描范围之外。删除同步文件夹中的文件,也会在同步运行后将其从云端副本中删除。
硬链接:两个路径,一个文件
在 NTFS 驱动器上,一个文件可以有多个名称。微软的 fsutil 硬链接文档 说明,在 NTFS 卷上,每个文件都可以有多个硬链接,因此同一个文件可以出现在多个目录中,程序也可以通过任一链接打开它。这样的两个条目并不是两份副本,而是一个文件的两个名称。删除其中一个名称不会释放空间;上述哈希方法会将它们列为匹配项,因为它们指向相同的数据。
Windows 本身在 WinSxS 文件夹中大量使用硬链接,这也是重复文件扫描应避开系统文件夹的另一个原因。
决定保留哪份副本
对于每组匹配文件,删除任何内容之前都要先选定要保留的副本。以下问题可以帮助你做出选择。
- 哪个文件夹是你整理好的位置?保留实际使用的文件库中的副本,删除“下载”文件夹或桌面上的多余副本。
- 是否有内容指向某个副本?音乐播放器、照片应用、快捷方式以及含有链接文件的文档都可能引用特定路径。删除所用的副本前,请先检查。
- 其中一份是否是有意保留的备份?如果是,那么就此用途而言,它不是重复文件。
- 仍然无法确定?那就都保留,然后继续。为了腾出一个文件的空间,通常不值得冒这个风险。
无论选择哪份,都要确保至少保留一份经过验证的副本。先打开它,确认内容完整。
通过回收站删除副本
在文件资源管理器中选中你决定删除的副本,然后按 Delete。在普通本地驱动器上,Windows 会将文件移至回收站;只要回收站尚未清空,你就可以还原文件。请仔细阅读确认提示。如果提示说文件将被永久删除,请停止操作。这是 Windows 提醒你回收站不会保留该文件的方式;某些可移动驱动器和网络位置可能会出现这种情况。我们没有找到列出所有适用情况的微软页面,因此请以提示内容为准。你可以改为将文件移到其他位置,或者考虑是否确实要将它删除。
每个驱动器上的回收站都有容量上限。右键单击回收站并选择 “属性”删除大文件时请记住这一点。清空回收站之前,空间不会释放;清空操作不可撤销。请等待几天再清空,以便在发现缺少文件时有机会恢复。
不值得费力查找的重复文件
许多小文件的匹配项不值得花时间处理。应用文件夹中的相同图标、配置文件和库文件都属于应用。删除它们几乎节省不了什么空间,反而可能导致故障。更值得查找的是大文件:视频、磁盘映像、安装程序、导出档案,以及被复制了两次的照片文件夹。
SafeClean 中的重复文件查找工具
选择要扫描的文件夹。SafeClean 按大小对文件分组、进行比较、使用加密哈希检查完整内容,并在执行操作前再次检查。标记为参考文件夹的文件夹绝不会被触碰,并会优先作为要保留的副本。始终至少保留一个副本;其他副本只会移至回收站,如果回收站不可用,则不会执行任何操作。处于打开状态、正在更改或硬链接到相同数据的文件会被跳过。
在 Microsoft Store 上获取 SafeClean 功能和价格
常见问题
两个不同的文件会有相同的哈希值吗?
对于 SHA256,微软的文档将哈希值匹配视为内容相同的证明;在实际使用中,无意碰撞并不值得担心。对于无法替代的文件,你仍然可以分别打开两份文件进行比较,然后再删除其中一份。
按大小和名称找到的重复文件可以安全删除吗?
不可以。名称和大小不能证明内容相同。请使用内容哈希,并保留一份经验证的副本。
Windows 永久删除内容前会提醒我吗?
通常会。请仔细阅读提示。如果提示说明将永久删除,表示文件不会移至回收站。
为什么删除重复文件后没有释放空间?
这些文件可能是指向同一数据的硬链接、仅联机云文件,或者仍在回收站中。清空回收站,并在“属性”中查看“占用空间”以了解实际数值。
这能找到相似的照片吗?
不能。调整尺寸或重新保存的照片,其内容和哈希值都不同。此方法只能查找完全相同的副本。