# ElegantHLK **Repository Path**: gitstr/ElegantHLK ## Basic Information - **Project Name**: ElegantHLK - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-22 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - # ElegantHLK (优雅硬链接) 🔗 > 一款**开源的**Windows下的NTFS文件系统的硬链接批量创建和管理工具,常用于运维以及文件备份,空间节省。它能够智能扫描指定目录下的重复文件,并将其一键转换为硬链接,从而在不影响文件正常使用的情况下,最大化释放你的物理磁盘空间。 - **当前版本:** v1.1 - **时间:** *2026年6月18日* - **国内网盘分流** - 百度网盘:https://pan.baidu.com/s/1bTYxI6l-_RKIJSQ0RnCdYQ?pwd=0000 - 夸克网盘:https://pan.quark.cn/s/2b00811d7a6a ![软件界面1.0](./图片/软件界面1.0.png) v1.1更新 1. 【导出】分析查重后,右侧重复文件列表新增「导出列表」按钮,可一键导出为 CSV(含路径、状态、大小/可省、SHA256、是否已硬链接)。若右侧有勾选项则只导出勾选项,否则导出全部,导出后可直接在资源管理器中定位文件。 2. 【实时进度】分析查重过程中,底部进度条左侧会实时显示当前正在扫描/校验的文件名与完整路径(路径过长自动省略中间部分),让长时间扫描时也能看到进度细节。 3. 【拖拽即扫】支持把文件夹(或文件)直接拖入窗口,自动填入地址栏并立即刷新该目录,省去手敲路径。拖文件时自动定位到其所在文件夹。 4. 【分组配色】右侧重复文件列表中,同一份内容(相同 SHA256)的一组文件用交替的浅蓝/白底色区分,一眼就能看清“哪几行是一伙的”,排序后配色依然按组对应不乱。 5. 【统计增强】分析完成后,弹窗与底部状态栏同时给出更完整的统计信息:重复文件组数、重复文件总数、可创建硬链接数、预计可释放空间,以及本次分析耗时(秒)。 ## 00 科普 和 介绍 ### 什么是硬链接? NTFS硬链接就像是给同一个文件起了多个不同的"名字",这些名字都指向硬盘上同一份实际数据,无论通过哪个名字修改,内容都会同步变化。 它跟复制文件完全不同——复制会占用两份空间,而硬链接无论创建多少个,都只占用原文件的那一份磁盘空间。 只有当最后一个"名字"被删除后,文件才真正从硬盘消失,就像一把钥匙配多把锁,必须所有锁都拆了,门才能彻底打开。 ### 这个程序干什么用的? 用来文件查重,并且一键删除多余的数据**(不是删除你的文件!)**,可以让我们在不删除文件的情况下,挤出这些重复文件所占的多余空间! 并且在介绍里我也说了,这个程序可用于**文件备份清理**、**硬盘屯屯鼠**、以及一些拥有大量存储空间,但是重复文件过多的人群! ### 这个程序和市面上那些已有程序有什么优势 优势可大了! ①我这个程序开源!并且是较为宽松的MIT协议! ②我这个程序可以用列表的形式直观呈现是否硬链接,是否可以创建,还会自动统计一次清除能节省多少空间! ③程序和代码及其小巧!程序本身只有130KB!还不够你一张自拍照大! ④性能极其优越!本程序**采用C/C++编写**、GUI程序功能使用的是完全的Windows原生api(连SHA256都是!)。使用的GDI+库,让你在高分辨率2K屏、4K屏下都能自适应缩放,**完全不会像老程序一样模糊** ### 怎么看出程序有用的? 使用程序扫描清理完后,从文件属性看,空间占用似乎不变。可是!请你看看盘符界面,硬盘的空余空间却变大了!这就是有用,这就是真实的空余空间,不是虚假的! ## 01✨ 核心功能 - **重复文件分析**:使用 SHA-256 哈希算法,对文件内容进行精确比对,精准找出深层目录结构中的重复文件。(文件夹下所有内容!) - **一键批量硬链接转换**:一键将所有重复文件转换为硬链接。程序会自动保留每组的第一个文件作为源文件**数据**,并“永久释放”其余物理文件以释放空间,同时在界面上直观展示总计可省空间。【释放文件数据并不会导致其他地方的文件被删除,而是所有相同文件都会指向同一个数据!这样会节省大量空间,**可在硬盘剩余空间展示出效果**!】 - **丰富的类型过滤器**:下拉菜单内置了多种常用文件过滤规则,包括:常用视频、高清/蓝光视频、音频、图片素材、执行文件、压缩包以及文档等,也支持自定义 `*.*` 扫描。我没想搞太多格式的筛选,暂时先添加这么多了 - **高分屏 (High DPI) 适配**:底层通过调用 GDI+ 实现了原生的 `SetProcessDPIAware` 高分辨率显示支持,确保在现代高分屏显示器上界面清晰锐利。并且,这是原生的GUI绘制方案,不依赖第三方各种庞大的框架,**把程序体积控制在150KB以内**! - **AHK 自动化脚本集成**:提供一键生成 AutoHotkey (AHK) 自动化快捷键脚本 (`ElegantHardlink_Hotkey.ahk`) 的功能,支持通过快捷键 (`Ctrl+H`) 快速在外部调用 cmd 执行 `mklink` 指令。(此部分还没达到真正的方便,似乎有bug,建议别用) - **右键上下文菜单**:支持在文件列表中右键快速复制文件名、完整路径、SHA256 值,以及在资源管理器中直接定位文件。 ## 02🛠️ 开发相关信息 - **开发语言**:C/C++ - **图形界面**:原生 Win32 API 和 GDI+ - **查重算法**:Windows CryptAPI (计算 SHA-256) - **极佳的兼容性**:宏定义 `_WIN32_WINNT 0x0501`,保持了对早期操作系统(如 Windows XP)的兼容支持,同时解决基础版 XP SDK 隐藏 SHA256 宏的问题。本项目的目的就在于给硬盘数据做极致的空间整理,不管你的电脑有多老!(到xp都行) ## 03🚀 快速上手and快速教程 1. 在顶部下拉框选择需要扫描的 **磁盘** 或手动输入 **地址**。 2. 选择需要查找的 **文件类型** 过滤器(也可以不选)。 3. 点击 **分析文件(查重)**,等待右侧列表显示出相同 SHA-256 的重复文件组。 4. 确认无误后,点击 **一键创建硬链接** 完成物理文件的释放与替换。 ![演示前](./图片/演示前.png) ![演示后](./图片/演示后.png) ## 📄 许可协议与作者 ![作者信息](./图片/作者信息.png) - **作者**:*恒烈 (EternalBlaze)* - **项目地址**:https://github.com/Henglie/ElegantHLK - **开源协议**:本项目基于 **MIT** 协议开源。 ## 📜 历史更新日志 v1.0更新 1. 【最大化】支持窗口最大化和自由拉伸,界面排版自适应调整(就是绑定按钮相对位置的意思) 2. 【筛选增强】增加高级筛选控件组,支持同时通过【正则黑白名单】和【文件大小区间】进行过滤 3. 【二次警告】增加高危易变文件(如办公文档、备份文件)的拦截,执行时触发二次警告并提供排除选项 4. 【筛选增强*2】左右两侧列表全部增加复选框,并分别加上“全选”和“反选”按钮 5. 【筛选增强*3】左侧列表支持仅勾选指定的文件夹进行查重,右侧支持仅对勾选的文件创建硬链接 6. 【进度条】修复底部进度条看不完整的bug,现在可以正常显示扫描计算进度 7. 【迟到的排序】左右两侧列表的所有表头(按名称、按大小等)全部支持双击进行升降序排列 8. 【史山显示bug修复】修复了空间节省计算的bug,已经硬链接过的文件不再重复计入 v0.3更新 1. 所有字号调大2号 2. 增加进度条(用于显示扫描、添加硬链接的进度) 3. 二次确认的风险提示增加警示“请不要用于容易被修改的重复文件!” 4. 版本变成0.3 5. 列表支持多种排序方式,增加复选框(默认是全选,一键添加所有硬链接) 6. 如果文件早有硬链接,则空间节省不计入