DataClone 是面向硬盘/固态硬盘数据恢复场景的桌面端工具,目标是在源盘存在坏道、文件系统异常或历史任务中断的情况下,尽量安全地完成数据克隆、文件系统解析、文件扫描和恢复导出。系统支持新建/打开任务、选择源设备与输出目标,输出 RAW/VHD/VHDX 镜像;提供多阶段复制、暂停/继续/终止、断点续传、全盘校验、LBA 状态位图、十六进制查看等能力。解析侧支持 NTFS、FAT、exFAT 文件系统,可浏览目录树、搜索文件、按扩展名/时间分组、查看节点详情和区段追溯;扫描侧通过文件签名识别图片、文档、压缩包、音视频、SQLite 等候选文件,并支持候选导出、删除项恢复和 PDF 修复副本生成,适合做数据恢复流程中的镜像、分析、验证和结果导出。
我负责 DataClone 模块的前后端功能闭环和核心恢复流程实现。前端使用 Qt/QML 构建任务向导、解析页、扫描页、位图视图和恢复弹窗,DataCloneController 负责把界面操作转换为后端命令,并维护复制、解析、扫描、校验等任务状态。后端采用 C++17 模块化插件结构,按 ClonePipeline、ScanPipeline、FsParsePipeline、存储仓库和任务安全服务拆分;会话数据、LBA 状态、扫描结果、解析索引、断点信息通过 SQLite 与 Blob 文件持久化。复制流程实现了 fast/retry/small/reverse 多阶段策略、坏块重试与跳过、断点恢复、任务暂停/继续/终止和校验失败区段记录;镜像输出通过 RAW 写入和 Windows Virtual Disk API 支持 VHD/VHDX。解析流程抽象 BlockDevice,封装 NTFS MFT 流式解析、FAT/exFAT 解析、删除项/孤儿项关联和 ParseIndex 持久化;扫描流程通过内置格式规则、签名命中、候选组装和文件系统区段提示提升恢复结果的可解释性。项目还配套了 Qt Test、QML 加载冒烟测试、控制器测试和回归脚本,覆盖任务安全、断点续传、解析索引、扫描候选、PDF 修复等关键路径。