Skip to content

maxliulc/Md5Checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Md5Checker

一个轻量的 Windows 小工具,用图形界面或命令行计算文件的 MD5 哈希值和大小。

功能

  • 图形界面:拖拽或选择文件,并行计算 MD5 与大小,状态栏实时显示进度
  • 命令行:对一个或多个文件批量输出 TSV 格式的结果,方便脚本处理
  • 同一个 .exe,不带参数启动 GUI,带参数进入 CLI
  • 去重:同一文件重复添加不会重复计算
  • 可选中若干行"重新计算",不影响其它行
  • 未捕获异常会弹对话框并写入 last-error.log,不再出现系统 JIT 调试弹窗

运行要求

图形界面

双击 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.tsv

从源码构建

cd Md5Checker
dotnet build -c Release

产物位于 Md5Checker/bin/Release/net10.0-windows/。发布单文件:

dotnet publish -c Release -r win-x64 --self-contained false

项目结构

Md5Checker/
├── 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

License

MIT

About

一个轻量的 Windows 小工具,用图形界面或命令行计算文件的 MD5 哈希值和大小。

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages