一个轻量的 Windows 小工具,用图形界面或命令行计算文件的 MD5 哈希值和大小。
- 图形界面:拖拽或选择文件,并行计算 MD5 与大小,状态栏实时显示进度
- 命令行:对一个或多个文件批量输出 TSV 格式的结果,方便脚本处理
- 同一个
.exe,不带参数启动 GUI,带参数进入 CLI - 去重:同一文件重复添加不会重复计算
- 可选中若干行"重新计算",不影响其它行
- 未捕获异常会弹对话框并写入
last-error.log,不再出现系统 JIT 调试弹窗
- Windows
- .NET 10 Desktop Runtime
双击 Md5Checker.exe 启动,或直接在资源管理器里把文件拖到窗口任意位置(窗体和表格区域都接受拖放)。
按钮:
- 选择文件… 打开文件对话框,支持多选
- 清空列表 清空当前列表并取消正在进行的计算
- 重新计算所选 对选中的行重新计算 MD5
Md5Checker.exe <文件> [更多文件...]
Md5Checker.exe --help
输出格式(TAB 分隔):
<完整路径>\t<字节数>\t<人类可读大小>\t<MD5 小写>
示例:
Md5Checker.exe "D:\a.iso" "D:\b.zip"退出码:0 全部成功,1 有文件跳过或出错,2 用法错误。
当从 cmd / powershell 启动时会挂接父进程控制台输出,脚本里直接重定向即可:
Md5Checker.exe "D:\a.iso" > hashes.tsvcd Md5Checker
dotnet build -c Release产物位于 Md5Checker/bin/Release/net10.0-windows/。发布单文件:
dotnet publish -c Release -r win-x64 --self-contained falseMd5Checker/
├── Program.cs 入口,装配全局异常处理,GUI/CLI 分流
├── FrmMain.cs 主窗体逻辑
├── FrmMain.Designer.cs 主窗体布局
├── Cli/
│ └── Md5Cli.cs 命令行入口
├── Services/
│ ├── FileHashService.cs MD5 计算(同步 + 异步版本)
│ └── ByteSizeFormatter.cs 字节数格式化
└── Interop/
└── Kernel32.cs AttachConsole / AllocConsole P/Invoke
- .NET 10 / C# 13
- Windows Forms
System.Security.Cryptography.MD5(内置,硬件加速)- 异步 I/O:
FileOptions.Asynchronous | SequentialScan+MD5.ComputeHashAsync
MIT