DataClonePro 帮助文档
一、产品概述
DataClonePro 是一款跨平台(Windows / macOS)的专业数据备份工具,支持多目标并行拷贝、校验验证、统计报告等功能。
核心特性
多目标并行拷贝
支持同时向最多 3 个目标路径拷贝,子任务可并行执行,源文件仅读取一次。
7 种校验算法
MD5 / XXH64 / XXH3 / XXH128 / BLAKE3 / SHA256 / FileSize,满足不同安全级别需求。
分片数据库架构
自动分片管理,单分片超过 2GB 自动轮转,保障大数据量下的查询性能。
统计与报告
多任务汇总统计,支持 HTML / ASC MHL 报告导出,文件格式分布分析。
任务导入导出
导出为 .dctb 格式文件,支持大文件自动分片;导入时自动去重。
驱动器热插拔
自动检测外接设备变化,驱动器移除时自动暂停相关任务,支持安全弹出。
系统要求
| 项目 | 要求 |
| 操作系统 | Windows 10+ / macOS 12+ |
| 磁盘空间 | 数据库至少保留 2GB 可用空间 |
二、主界面
主界面采用左右分栏布局:
- 左侧:任务配置面板(TaskConfigPanel)——创建新的备份任务
- 中间:动画分隔线——拷贝执行时闪烁动画
- 右侧:任务列表面板(TaskListPanel)——管理所有任务
菜单栏功能
| 菜单 | 菜单项 | 功能说明 |
| 文件 | 保存任务 | 将当前所有已完成任务保存到数据库 |
| 导入任务 | 从 .dctb 文件导入任务(自动去重) |
| 导出任务 | 将任务导出为 .dctb 格式文件(支持分片导出) |
| 数据库管理 | 查看和管理数据库分片文件(含压缩) |
| 退出 | 退出应用程序 |
| 工具 | 系统信息 | 查看 CPU、内存、网络、磁盘实时状态 |
| 磁盘测速 | 测试目标磁盘的写入/读取速度(Blackmagic 风格仪表盘) |
| 统计查询 | 打开统计查询对话框 |
| 设置 | 打开系统设置对话框 |
| 帮助 | 信息日志 | 查看操作日志(支持级别筛选、清除、导出) |
| 关于 | 查看版本信息 |
三、任务配置
在左侧面板中配置和创建备份任务。
配置项说明
| 配置项 | 说明 |
| 任务名称 | 为任务起一个易识别的名称(有长度限制) |
| 源路径 | 要拷贝的源目录,支持拖放输入或目录树选择 |
| 目标路径 1~3 | 拷贝目标目录,默认显示1个,可添加最多3个;支持拖放 |
| 校验算法 | 从可见算法列表中选择(可在设置中配置可见算法和默认算法) |
| 跳过相同文件 | 若目标已存在与源相同的文件(校验码一致),则跳过 |
| 保留源目录名 | 在目标路径末尾自动追加源目录名 |
| 子任务并行执行 | 多目标时,源文件仅读取1次,并行写入各目标 |
| 完成后通知 | 勾选后,任务完成时自动发送邮件通知。注意:此选项仅控制当前任务;邮件发送需要先在"系统设置 → 通知设置"中完成 SMTP 全局配置并启用。若全局邮件开关未开启,任务配置面板将显示黄色警告提示。 |
创建任务步骤
- 输入任务名称
- 选择或拖入源路径
- 选择或拖入目标路径(可点击 "+" 添加更多目标)
- 根据需要调整校验算法和选项
- 点击"创建任务"按钮
系统会自动进行前置检查,包括源路径和目标路径的有效性验证。
完成后通知警告
当用户勾选"完成后通知"但系统中的全局邮件发送功能处于关闭状态时,配置面板底部会出现黄色警告文字:"警告:邮件发送已关闭,如需启用请在设置中开启!"。此时即使勾选了通知,任务完成后也不会发送邮件。
目录树浏览
左侧面板下方提供目录树,可直接点击选择路径。支持以下操作:
- 展开/折叠目录节点
- 点击目录自动填入路径输入框
- 右键菜单:安全移除驱动器(限USB外接硬盘)
- 驱动器变化时自动刷新
同盘警告:拖拽时若检测到源和目标在同一物理磁盘,会显示黄色警告提示。
四、任务管理
右侧面板展示所有任务,分为"任务队列"和"存档"两个标签页。
任务列表列说明
| 列名 | 说明 |
| 序号 | 任务在列表中的编号 |
| 建立时间 | 任务创建时间 |
| 任务名称 | 用户定义的任务名 |
| 状态 | 当前状态(见下方状态说明) |
| 进度/文件信息 | 运行中显示进度百分比;历史任务显示文件数和大小 |
| 开始时间 | 任务开始执行的时间 |
| 结束时间/预估结束 | 运行中显示预估结束时间;已完任务显示实际结束时间 |
| 持续时间 | 任务已运行/总耗时 |
任务状态
| 状态 | 说明 |
| 等待中 (Pending) | 任务已创建,等待启动 |
| 扫描中 (Scanning) | 正在扫描源目录文件 |
| 运行中 (Running) | 正在执行拷贝操作 |
| 已暂停 (Paused) | 任务被手动暂停 |
| 已完成 (Completed) | 拷贝成功完成 |
| 已失败 (Failed) | 拷贝过程中出错 |
| 排队中 (Waiting) | 在批量执行队列中等待 |
| 已存档 (Archived) | 任务已归档至存档标签 |
操作按钮
- 启动/暂停:启动等待中的任务,或暂停运行中的任务
- 移除:从列表中移除任务(软删除,可恢复)
执行器同时只运行一个任务:在已有任务运行时启动第二个任务,会弹出"任务运行中"提示。需等待当前任务完成后再启动下一个。
停止任务
运行中或已暂停的任务可被停止(批量停止或驱动器移除时自动触发)。停止后任务标记为已失败,可直接从失败状态重新启动,无需删除重建。等待中/排队中的任务被停止时同样标记为失败。
右键菜单
在任务队列中右键单击单个任务,弹出上下文菜单:
| 操作 | 说明 |
| 存档任务 | 将已完成或失败的任务移入存档标签(仅对 Completed / Failed 状态显示) |
| 重命名 | 修改任务名称,通过弹出对话框输入新名称 |
| 启用通知 / 禁用通知 | 切换当前任务的邮件通知开关。该菜单项为复选框样式(勾选 = 已启用),点击后即时切换。此开关与任务配置面板中的"完成后通知"复选框同步联动。注意:即使此处开启通知,仍需在系统设置中完成 SMTP 全局配置并启用邮件发送,否则任务完成时不会实际发送邮件。 |
| 打开源目录 | 在系统资源管理器中打开任务的源路径 |
| 打开目标目录 | 在系统资源管理器中打开对应目标路径(多目标任务在子任务行上右键时打开对应目标) |
存档标签右键菜单
| 操作 | 说明 |
| 永久删除 | 彻底删除任务及关联文件记录 |
| 恢复 | 从存档恢复任务到任务队列 |
批量操作
选中多个任务后,可批量执行:启动、暂停、停止、移除。批量执行采用 LIFO(后进先出)队列,按倒序依次启动任务。
分页
任务列表支持虚拟分页,默认每页 50 条。分页控件支持:首页、前2页、前1页、页码输入跳转、后1页、后2页、末页。
限制说明
| 限制项 | 限制值 |
| 最大目标路径数 | 3 个 |
| 任务名称最大显示宽度 | 20 个汉字(40 字符) |
五、进度查看
点击任务列表中的任务,右侧会显示该任务的文件级进度详情。
进度视图结构
- 多目标任务按目标路径分为多个 Tab(如"Dest1"、"Dest2"、"Dest3")
- 每个 Tab 显示该目标路径下的文件列表
- 列表包含:文件名、格式、大小、进度、状态、校验码等信息
文件状态
| 状态 | 说明 |
| 等待中 | 文件排队等待拷贝 |
| 拷贝中 | 正在拷贝文件数据 |
| 校验中 | 拷贝完成,正在验证校验码 |
| 已完成 | 拷贝并校验成功 |
| 失败 | 拷贝或校验出错 |
| 已跳过 | 因源文件与目标相同而跳过 |
速度计算
采用指数移动平均(EMA)算法计算平滑传输速度,避免因文件大小差异导致速度波动。运行中显示实时速度和预估剩余时间。
历史任务详情
对于已完成的任务,文件列表采用懒加载模式——仅在点击任务时按需从数据库分页加载文件记录,避免启动时内存占用过大。
限制说明
| 限制项 | 限制值 |
| 子任务 Tab 上限 | 3 个 |
| 文件详情每分片最大加载量 | 50,000 条 |
六、统计查询
通过菜单栏"统计查询"打开独立对话框,包含三个标签页。
任务查询
按条件筛选任务记录,支持:
- 按任务名称模糊搜索
- 按日期范围筛选(默认最近30天)
- 按状态筛选
- 双击任务行可跳转到文件查询标签并显示该任务的文件(仅已完成任务响应;运行中/已暂停/已失败任务双击不跳转)
- 查询结果支持分页浏览
文件查询
跨所有任务搜索文件记录,支持:
- 按文件名模糊搜索
- 按文件格式多选筛选
- 按日期范围筛选
- 查询结果支持分页浏览
- 显示文件所属任务名称和创建时间
统计
多任务汇总统计,功能包括:
- 从任务选择表格中勾选要统计的任务
- 生成汇总统计:总文件数、成功/失败/跳过数、总数据量、平均速度、成功率
- 文件格式分布分析
- 单任务独立统计
- 预览报告(分页显示文件详情)
- 导出报告为 HTML 或 ASC MHL 格式(大文件量自动拆分)
报告导出时,当文件记录数超过阈值会自动拆分为多个文件,命名规则为:basename_1.html, basename_2.html, ...
限制说明
| 限制项 | 限制值 |
| 统计任务最大选择数 | 20 个任务 |
| 所选任务文件总数上限 | 1,000,000 个文件 |
| 文件查询最大结果数 | 30,000 条 |
| 预览报告最大页数 | 100 页 |
| 报告自动拆分阈值 | 超过 10,000 个文件记录自动拆分 |
七、系统设置
通过菜单栏"设置"打开设置对话框,包含三个标签页。
通用设置
| 设置项 | 说明 |
| 默认目标地址数量 | 新建任务时默认显示的目标路径输入框数量(1/2/3) |
| 任务列表每页数量 | 任务列表每页显示的任务数 |
| 文件列表每页数量 | 文件详情每页显示的文件数 |
| 默认语言 | 界面语言(中文/英文) |
| 显示存档标签 | 是否在任务列表中显示存档标签页 |
| 任务查询天数范围 | 统计查询中任务查询的默认日期范围 |
| 文件查询天数范围 | 统计查询中文件查询的默认日期范围 |
| 记录文件详情 | 开启后,任务完成时将详细文件记录(文件名、校验码、状态等)保存到数据库;关闭后仅保存任务汇总统计。设置变更需重启应用生效。设置界面中:🟠 橙色实心圆点表示已开启记录;⚪ 白色空心圆圈表示未开启记录。 |
通知设置
通知设置标签页用于配置 SMTP 邮件服务器参数,是邮件通知功能的全局配置中心。
全局开关
| 设置项 | 说明 |
| 启用/关闭发送 | 全局邮件通知总开关。勾选后,各任务的"完成后通知"功能才实际生效。关闭时,即使任务勾选了通知也不会发送邮件,任务配置面板会显示黄色警告。 |
SMTP 服务器配置
| 设置项 | 说明 |
| SMTP 服务器 | 邮件服务器地址,例如 smtp.qq.com、smtp.gmail.com、smtp.163.com。支持域名和 IP 地址格式。 |
| SMTP 端口 | 下拉选择:25(标准 SMTP,不加密)、465(SSL/TLS 加密,直接建立 TLS 连接)、587(STARTTLS,先明文连接再升级为 TLS)。默认推荐 587。 |
| 发件人邮箱 | 用于登录 SMTP 服务器的邮箱地址,也是通知邮件的发件人。 |
| 授权码 | 邮箱的 SMTP 授权码(非邮箱登录密码) |
| 收件人邮箱 | 接收任务完成通知的邮箱地址。 |
测试邮件
填写完 SMTP 配置后,点击"测试邮件"按钮验证配置是否正确。测试流程:
- 验证所有字段是否填写完整,空字段边框显示橙色提示
- 校验邮箱格式和服务器地址格式是否正确
- 通过 TCP 连接测试 SMTP 服务器可达性(5 秒超时)
- 通过 SMTP 协议发送一封测试邮件到收件人邮箱
- 显示发送结果(成功提示或错误详情)
按钮在测试过程中显示"检查中..."和"发送中..."状态,期间按钮禁用防止重复操作。
SSL/TLS 安全
系统采用 QSslSocket 进行加密通信。SMTP 连接握手支持:
- 端口 465:直接建立 TLS 加密连接(connectToHostEncrypted)
- 端口 587:先建立 TCP 明文连接,再通过 STARTTLS 升级为 TLS
- 端口 25:标准 SMTP 明文连接(不推荐)
SSL 证书验证对自签名证书提供特殊处理;主机名不匹配和证书过期被视为严重安全错误,不会被忽略。
校验算法设置
配置任务配置面板中可见的校验算法和默认选中的算法:
- 勾选/取消勾选各算法以控制其在下拉菜单中是否可见
- 从可见算法中选择一个作为默认算法
- 至少保留一个可见算法
九、SMTP 邮件通知详解
DataClonePro 内置完整的 SMTP 邮件通知系统,支持任务完成后自动发送邮件通知。本章节详细介绍该功能的工作流程、配置方法和使用技巧。
通知工作流程
- 全局配置:在"系统设置 → 通知设置"中配置 SMTP 服务器、端口、账号、授权码和收件人,并确保"启用/关闭发送"处于勾选状态。
- 任务级开启:在任务配置面板勾选"完成后通知",或在任务列表中右键选择"启用通知"。
- 任务完成触发:任务执行完毕(成功或失败)时,系统自动调用 NotificationService 发送邮件。
- 邮件内容:包含任务名称、执行状态、完成时间等基本信息。
- 队列机制:多个通知请求自动排队,依次发送,避免并发连接冲突。
右键通知菜单详解
在任务队列中右键单击任意单个任务,弹出菜单中包含以下通知相关选项:
| 菜单项 | 显示逻辑 | 行为 |
| 启用通知 | 当前任务通知未开启时显示 | 点击后开启通知,菜单项变更为"禁用通知"并显示勾选标记 |
| 禁用通知 | 当前任务通知已开启时显示 | 点击后关闭通知,菜单项变更为"启用通知"并取消勾选标记 |
该菜单项为可复选样式(checkable),勾选状态直观反映当前任务的通知开关状态。此操作与任务配置面板中的"完成后通知"复选框完全同步,任一处修改都会即时反映到另一处。
右键通知切换仅在单选任务时可用。多选批量操作模式下不显示通知相关菜单。
常见 SMTP 服务器配置参考
| 邮件服务商 | SMTP 服务器 | 端口 | 说明 |
| QQ 邮箱 | smtp.qq.com | 587 | 需在 QQ 邮箱设置中开启 SMTP 服务,获取授权码 |
| 163 邮箱 | smtp.163.com | 587 | 需在网易邮箱设置中开启 SMTP 服务 |
| Gmail | smtp.gmail.com | 587 | 需开启两步验证并使用应用专用密码 |
| Outlook | smtp-mail.outlook.com | 587 | 使用 Microsoft 账户密码或应用密码 |
| 企业邮箱(腾讯) | smtp.exmail.qq.com | 587 | 使用企业邮箱账号和密码 |
SMTP 状态机
邮件发送遵循标准 SMTP 协议状态机流程:
- 连接 → 接收服务器问候 (Greeting)
- 发送 EHLO → 服务器返回支持的命令列表
- (端口 587)发送 STARTTLS → 升级为加密连接 → 再次 EHLO
- (端口 465)直接 TLS 加密连接,省略 STARTTLS
- 发送 AUTH LOGIN → 发送 Base64 编码的用户名和密码
- 发送 MAIL FROM → RCPT TO → DATA → 邮件正文 → QUIT
安全机制
- 授权码存储:邮箱授权码使用操作系统原生密钥链安全存储(Windows Credential Manager / macOS Keychain),不以明文写入配置文件。
- SSL 证书验证:默认严格验证证书链。自签名证书可根据配置允许;主机名不匹配和证书过期为严重安全错误,始终拒绝。
- 防重入保护:同一封邮件发送失败不会无限重试;失败后立即处理队列中的下一封邮件。
故障排查
| 现象 | 可能原因 | 解决方法 |
| 勾选通知但未收到邮件 | 全局邮件开关未启用 | 检查"系统设置 → 通知设置 → 启用/关闭发送" |
| 测试邮件发送失败 | SMTP 服务器不可达 | 检查网络连接、服务器地址和端口是否正确 |
| 认证失败 | 授权码错误 | 确认使用的是 SMTP 授权码而非邮箱登录密码 |
| SSL 错误 | 证书验证失败 | 检查服务器证书是否有效;如为自签名证书,调整 SSL 验证配置 |
| 连接超时 | 端口被封或防火墙阻止 | 尝试切换端口(如从 587 切换到 465) |
十、开源致谢
DataClonePro 的开发离不开以下开源软件的贡献,在此致以诚挚的感谢:
| 开源库 | 版本 | 说明 | 许可证 |
| Qt | 运行时版本 | 跨平台 UI 框架 | LGPL v3 |
| OpenSSL | 3.x | 加密与安全通信工具包 | Apache 2.0 |
| xxHash | 0.8.3 | 极速哈希算法 | BSD 2-Clause |
| BLAKE3 | 1.8.3 | 高性能加密哈希算法 | Apache 2.0 或 CC0 1.0 |
| SQLite3 | 3.47.0 | 嵌入式 SQL 数据库引擎 | Public Domain (Zlib) |
十一、常见问题
Q:拷贝速度比预期慢
A:可能原因:1) 源和目标在同一物理磁盘;2) 目标磁盘写入速度低;3) 校验算法开销。建议使用"工具 → 磁盘测速"实测目标盘读写速度,用"系统信息"工具查看磁盘状态,并检查源目标是否同盘。
Q:校验失败怎么办
A:校验失败表示目标文件与源文件内容不一致。可能原因:1) 磁盘错误;2) 拷贝过程中文件被修改;3) 网络传输错误(网络驱动器)。建议重新执行任务。
Q:数据库占用空间过大
A:通过"数据库管理"工具查看各分片大小,可删除不再需要的非活跃分片。每个分片超过 2GB 会自动创建新分片。
Q:如何恢复误删的任务
A:任务删除是软删除,可在"存档"标签页中右键选择"恢复"将任务恢复到任务队列。如需彻底删除,在存档中使用"永久删除"。
Q:导入任务时提示"已存在"
A:导入功能会自动检测任务 ID 是否已存在,重复任务会被跳过。如需覆盖,请先删除现有任务。
Q:外接硬盘拔出后任务异常
A:系统会自动检测驱动器移除事件并暂停相关任务。重新插入硬盘后,手动恢复任务即可。
Q:邮件通知收不到
A:请按以下步骤排查:
- 确认"系统设置 → 通知设置"中"启用/关闭发送"已勾选
- 确认 SMTP 服务器地址和端口配置正确
- 使用"测试邮件"功能验证配置是否能成功发送
- 确认使用的是授权码而非邮箱登录密码
- 检查垃圾邮件箱
- 尝试切换 SMTP 端口(587 → 465)
Q:右键菜单中的"启用通知"与任务配置面板的"完成后通知"是什么关系
A:两者完全同步联动,操作的是同一个任务级通知开关。右键菜单以复选框样式显示,勾选即开启;任务配置面板以复选框形式显示。任一处修改都会即时反映到另一处。这个开关仅控制当前任务;实际邮件发送还依赖系统设置中的全局 SMTP 配置。
Q:如何获取 QQ 邮箱的 SMTP 授权码
A:登录 QQ 邮箱网页版 → 设置 → 账户 → POP3/IMAP/SMTP 服务 → 开启 SMTP 服务 → 按提示发送短信验证 → 获取 16 位授权码。将此授权码填入 DataClonePro 的"授权码"字段。
Q:支持哪些校验算法
| 算法 | 说明 | 适用场景 |
| MD5 | 128-bit 哈希,速度快 | 常规校验 |
| XXH64 | 64-bit 非加密哈希,极快 | 大文件快速校验 |
| XXH3 | 64-bit,XXH64 升级版 | 高性能场景 |
| XXH128 | 128-bit,XXH64 升级版 | 高精度场景 |
| BLAKE3 | 256-bit 密码学哈希,极快 | 安全校验 |
| SHA256 | 256-bit 密码学哈希 | 高安全需求 |
| FileSize | 仅比较文件大小 | 无需内容校验时 |
DataClonePro Help Documentation
1. Product Overview
DataClonePro is a cross-platform (Windows / macOS) professional data backup tool, supporting multi-target parallel copying, verification, and statistical reporting.
Core Features
Multi-Target Parallel Copy
Copy to up to 3 destination paths simultaneously. Sub-tasks run in parallel, and source files are read only once.
7 Verification Algorithms
MD5 / XXH64 / XXH3 / XXH128 / BLAKE3 / SHA256 / FileSize — meeting different security level requirements.
Sharded Database Architecture
Automatic shard management. Shards rotate when exceeding 2GB, ensuring query performance with large data volumes.
Statistics & Reporting
Multi-task summary statistics with HTML / ASC MHL report export and file format distribution analysis.
Task Import/Export
Export to .dctb format with automatic large-file splitting; import with automatic deduplication.
Drive Hot-Plug Detection
Automatic detection of external drive changes. Tasks are paused when drives are removed. Supports safe ejection.
System Requirements
| Item | Requirement |
| Operating System | Windows 10+ / macOS 12+ |
| Disk Space | At least 2GB free space for the database |
2. Main Window
The main window uses a left-right split layout:
- Left: Task Configuration Panel (TaskConfigPanel) — create new backup tasks
- Center: Animated divider — flashes with animation during copy execution
- Right: Task List Panel (TaskListPanel) — manage all tasks
Menu Bar Functions
| Menu | Item | Description |
| File | Save Tasks | Save all completed tasks to the database |
| Import Tasks | Import tasks from .dctb files (automatic deduplication) |
| Export Tasks | Export tasks as .dctb format files (supports split export) |
| Database Management | View and manage database shard files (incl. compaction) |
| Exit | Exit the application |
| Tools | System Information | View real-time CPU, memory, network, and disk status |
| Disk Speed Test | Benchmark a target disk's write/read speeds (Blackmagic-style gauges) |
| Statistics | Open the statistics query dialog |
| Settings | Open the system settings dialog |
| Help | Information Log | View operation logs (level filtering, clear, export) |
| About | View version information |
3. Task Configuration
Configure and create backup tasks in the left panel.
Configuration Items
| Item | Description |
| Task Name | Give the task an easily recognizable name (length limited) |
| Source Path | The source directory to copy from; supports drag-and-drop or directory tree selection |
| Destination Paths 1–3 | Copy destination directories; shows 1 by default, can add up to 3; supports drag-and-drop |
| Checksum Algorithm | Select from the visible algorithm list (configurable in Settings for visibility and default) |
| Skip Identical Files | If the destination already has a file identical to the source (same checksum), skip it |
| Keep Source Directory Name | Automatically append the source directory name to the destination path |
| Parallel Sub-tasks | When multiple destinations, source files are read once and written to all destinations in parallel |
| Notify on Completion | When checked, automatically sends an email notification upon task completion. Note: this checkbox only controls the current task. Email sending requires global SMTP configuration under "Settings → Notifications" with the global send toggle enabled. If the global email toggle is off, a yellow warning will appear on the task configuration panel. |
Steps to Create a Task
- Enter a task name
- Select or drag in the source path
- Select or drag in destination paths (click "+" to add more destinations)
- Adjust checksum algorithm and options as needed
- Click the "Create Task" button
The system automatically performs pre-checks, including source and destination path validity verification.
Notification Warning
When "Notify on completion" is checked but the global email sending toggle is disabled, a yellow warning message appears at the bottom of the configuration panel: "Warning: Email sending is disabled, enable it in Settings if needed!". No email will be sent in this state.
Directory Tree Browsing
A directory tree is provided below the left panel for direct path selection. Supports:
- Expand/collapse directory nodes
- Click a directory to auto-fill the path input
- Right-click menu: safely remove drive (USB external drives only)
- Auto-refresh on drive changes
Same-disk warning: when dragging and dropping, if the source and destination are on the same physical disk, a yellow warning is displayed.
4. Task Management
The right panel displays all tasks, divided into "Task Queue" and "Archive" tabs.
Task List Columns
| Column | Description |
| # | Task number in the list |
| Created | Task creation time |
| Task Name | User-defined task name |
| Status | Current status (see status descriptions below) |
| Progress/Files | Running tasks show progress percentage; historical tasks show file count and size |
| Start Time | Time the task started executing |
| End Time/ETA | Running tasks show estimated end time; completed tasks show actual end time |
| Duration | Time elapsed / total time |
Task Statuses
| Status | Description |
| Pending | Task created, waiting to start |
| Scanning | Scanning source directory files |
| Running | Executing copy operation |
| Paused | Task manually paused |
| Completed | Copy completed successfully |
| Failed | Error occurred during copy |
| Waiting | In batch execution queue, waiting |
| Archived | Task moved to archive tab |
Action Buttons
- Start/Pause: Start a pending task, or pause a running task
- Remove: Remove a task from the list (soft delete, recoverable)
The executor runs only one task at a time: starting a second task while another is running shows a "Task Running" prompt. Wait for the current task to complete before starting the next one.
Stopping Tasks
Running or paused tasks can be stopped (via batch stop or automatically when a drive is removed). A stopped task is marked as Failed and can be restarted directly from the failed state — no need to delete and recreate it. Pending/waiting tasks that are stopped are likewise marked as failed.
Context Menu (Task Queue)
Right-click a single task in the queue to open the context menu:
| Action | Description |
| Archive Task | Move a completed or failed task to the archive tab (only shown for Completed / Failed status) |
| Rename | Modify the task name via a popup dialog |
| Enable Notification / Disable Notification | Toggle email notification for this task. The menu item is checkable (checked = enabled), with instant toggling. This switch is synchronized with the "Notify on completion" checkbox in the task configuration panel. Note: even when enabled here, the global SMTP configuration must be set up and the global email toggle must be on under Settings for emails to actually be sent. |
| Open Source Directory | Open the task's source path in the system file explorer |
| Open Destination Directory | Open the corresponding destination path in the file explorer (for multi-destination tasks, right-click a sub-task row to open that destination) |
Archive Context Menu
| Action | Description |
| Permanent Delete | Permanently delete the task and associated file records |
| Restore | Restore a task from archive to the task queue |
Batch Operations
Select multiple tasks to perform batch actions: start, pause, stop, remove. Batch execution uses a LIFO (Last-In-First-Out) queue, starting tasks in reverse order.
Pagination
The task list supports virtual pagination with a default of 50 items per page. Pagination controls include: first page, previous 2 pages, previous page, page number input, next page, next 2 pages, last page.
Limits
| Limit | Value |
| Maximum destination paths | 3 |
| Maximum task name display width | 20 CJK characters (40 characters) |
5. Progress View
Click a task in the task list to display file-level progress details on the right side.
Progress View Structure
- Multi-destination tasks are divided into multiple tabs by destination path (e.g., "Dest1", "Dest2", "Dest3")
- Each tab displays the file list for that destination
- Columns include: file name, format, size, progress, status, checksum, etc.
File Statuses
| Status | Description |
| Pending | File queued for copying |
| Copying | File data is being copied |
| Verifying | Copy complete, verifying checksum |
| Completed | Copy and verification successful |
| Failed | Copy or verification error |
| Skipped | Skipped because source and destination files are identical |
Speed Calculation
An Exponential Moving Average (EMA) algorithm is used to calculate smooth transfer speeds, avoiding fluctuations caused by varying file sizes. Running tasks display real-time speed and estimated remaining time.
Historical Task Details
For completed tasks, the file list uses lazy loading — files are loaded on demand from the database with pagination only when a task is clicked, preventing excessive memory usage at startup.
Limits
| Limit | Value |
| Maximum sub-task tabs | 3 |
| Maximum file records loaded per shard | 50,000 records |
6. Statistics & Queries
Open the standalone dialog via the "Statistics" menu item. It contains three tabs.
Task Query
Filter task records by conditions. Supports:
- Fuzzy search by task name
- Date range filtering (default: last 30 days)
- Status filtering
- Double-click a task row to jump to the File Query tab and display that task's files (only completed tasks respond; running/paused/failed tasks do not)
- Paginated query results
File Query
Search file records across all tasks. Supports:
- Fuzzy search by file name
- Multi-select filtering by file format
- Date range filtering
- Paginated query results
- Displays the associated task name and creation time
Statistics
Multi-task summary statistics. Features include:
- Check tasks in the selection table to include in statistics
- Generate summary: total files, success/failure/skipped counts, total data size, average speed, success rate
- File format distribution analysis
- Individual task statistics
- Preview report (paginated file details)
- Export report as HTML or ASC MHL (auto-split for large file counts)
When exporting reports, if the number of file records exceeds a threshold, the report is automatically split into multiple files named: basename_1.html, basename_2.html, ...
Limits
| Limit | Value |
| Maximum tasks for statistics | 20 tasks |
| Maximum total files across selected tasks | 1,000,000 files |
| Maximum file search results | 30,000 records |
| Maximum preview report pages | 100 pages |
| Report auto-split threshold | Auto-split when exceeding 10,000 file records |
7. Settings
Open the settings dialog via the "Settings" menu item. It contains three tabs.
General Settings
| Setting | Description |
| Default Destination Count | Number of destination path input boxes shown by default when creating a new task (1/2/3) |
| Tasks Per Page | Number of tasks displayed per page in the task list |
| Files Per Page | Number of files displayed per page in file details |
| Default Language | Interface language (Chinese/English) |
| Show Archive Tab | Whether to display the archive tab in the task list |
| Task Query Day Range | Default date range for task queries in statistics |
| File Query Day Range | Default date range for file queries in statistics |
| Record File Details | When enabled, detailed file records (file name, checksum, status, etc.) are saved to the database upon task completion; when disabled, only task summary statistics are saved. Changes take effect after restarting the application. In the settings: 🟠 Orange solid dot indicates recording is enabled; ⚪ White hollow circle indicates recording is disabled. |
Notification Settings
The Notification tab is the global configuration center for SMTP email notifications.
Global Toggle
| Setting | Description |
| Enable/Disable Sending | Global master switch for email notifications. Must be checked for per-task "Notify on completion" to actually work. When off, no emails are sent even if individual tasks have notifications enabled, and a yellow warning appears on the task configuration panel. |
SMTP Server Configuration
| Setting | Description |
| SMTP Server | Mail server address, e.g., smtp.qq.com, smtp.gmail.com, smtp.163.com. Supports both domain names and IP addresses. |
| SMTP Port | Dropdown: 25 (standard SMTP, unencrypted), 465 (SSL/TLS, direct encrypted connection), 587 (STARTTLS, plaintext then upgrade to TLS). Default: 587. |
| Sender Email | The email address used to log into the SMTP server; also appears as the sender of notification emails. |
| Authorization Code | The SMTP authorization code (not your email login password) |
| Recipient Email | The email address to receive task completion notifications. |
Test Email
After filling in the SMTP configuration, click "Test Email" to verify. The test flow:
- Validate all required fields are filled (empty fields highlighted with orange border)
- Validate email format and server address format
- Test TCP connectivity to the SMTP server (5-second timeout)
- Send a test email via the SMTP protocol to the recipient
- Display the result (success or detailed error)
The button shows "Checking..." and "Sending..." states during the process and is disabled to prevent duplicate clicks.
SSL/TLS Security
The system uses QSslSocket for encrypted communication. SMTP connection handshake modes:
- Port 465: Direct TLS encrypted connection (connectToHostEncrypted)
- Port 587: TCP plaintext first, then STARTTLS upgrade to TLS
- Port 25: Standard SMTP plaintext (not recommended)
SSL certificate verification provides special handling for self-signed certificates. Hostname mismatches and expired certificates are treated as critical security errors and are never ignored.
Verification Algorithm Settings
Configure which verification algorithms are visible in the task configuration panel and which is selected by default:
- Check/uncheck algorithms to control their visibility in the dropdown menu
- Select one visible algorithm as the default
- At least one algorithm must remain visible
9. SMTP Email Notification Guide
DataClonePro includes a complete SMTP email notification system that automatically sends email notifications upon task completion. This section covers the workflow, configuration, and usage tips in detail.
Notification Workflow
- Global Configuration: Under "Settings → Notifications", configure the SMTP server, port, account, authorization code, and recipient. Ensure "Enable/Disable Sending" is checked.
- Task-Level Enable: Check "Notify on completion" in the task configuration panel, or right-click a task and select "Enable Notification".
- Task Completion Trigger: When a task finishes (success or failure), the system automatically calls NotificationService to send an email.
- Email Content: Includes the task name, execution status, and completion time.
- Queue Mechanism: Multiple notification requests are automatically queued and sent sequentially to avoid concurrent connection conflicts.
Right-Click Notification Menu Details
Right-click any single task in the task queue to access notification-related options in the context menu:
| Menu Item | When Shown | Behavior |
| Enable Notification | When notification is currently off | Click to enable; menu item changes to "Disable Notification" with a checkmark |
| Disable Notification | When notification is currently on | Click to disable; menu item changes to "Enable Notification" and removes the checkmark |
The menu item uses a checkable style — the checked state directly reflects the current notification status for this task. This action is fully synchronized with the "Notify on completion" checkbox in the task configuration panel; changes in either location are instantly reflected in the other.
Right-click notification toggle is only available for single-task selection. It does not appear in multi-select batch mode.
Common SMTP Server Configuration Reference
| Email Provider | SMTP Server | Port | Notes |
| QQ Mail | smtp.qq.com | 587 | Enable SMTP service in QQ Mail settings to obtain an authorization code |
| 163 Mail | smtp.163.com | 587 | Enable SMTP service in NetEase Mail settings |
| Gmail | smtp.gmail.com | 587 | Enable 2-step verification and use an app-specific password |
| Outlook | smtp-mail.outlook.com | 587 | Use your Microsoft account password or an app password |
| Tencent Enterprise | smtp.exmail.qq.com | 587 | Use your enterprise email and password |
SMTP State Machine
Email sending follows the standard SMTP protocol state machine:
- Connect → receive server greeting
- Send EHLO → server returns supported commands
- (Port 587) Send STARTTLS → upgrade to encrypted → EHLO again
- (Port 465) Direct TLS encrypted connection, skip STARTTLS
- Send AUTH LOGIN → send Base64-encoded username and password
- Send MAIL FROM → RCPT TO → DATA → email body → QUIT
Security Mechanisms
- Authorization Code Storage: The authorization code is securely stored in the OS-native keychain (Windows Credential Manager / macOS Keychain), never written to configuration files in plaintext.
- SSL Certificate Verification: Strict certificate chain verification by default. Self-signed certificates may be allowed per configuration; hostname mismatches and expired certificates are always treated as critical security errors and rejected.
- Re-entry Protection: A failed email send does not retry infinitely. The next queued email is processed immediately after a failure.
Troubleshooting
| Symptom | Possible Cause | Solution |
| Notification checked but no email received | Global email toggle is off | Check "Settings → Notifications → Enable/Disable Sending" |
| Test email fails | SMTP server unreachable | Check network, server address, and port |
| Authentication failed | Wrong authorization code | Ensure you are using the SMTP authorization code, not your email login password |
| SSL error | Certificate verification failure | Check if the server certificate is valid; adjust SSL config for self-signed certificates |
| Connection timeout | Port blocked or firewall | Try switching ports (e.g., from 587 to 465) |
10. Open Source Acknowledgments
DataClonePro would not be possible without the contributions of the following open source software:
| Library | Version | Description | License |
| Qt | Runtime version | Cross-platform UI framework | LGPL v3 |
| OpenSSL | 3.x | Cryptography & SSL/TLS toolkit | Apache 2.0 |
| xxHash | 0.8.3 | Extremely fast hash algorithm | BSD 2-Clause |
| BLAKE3 | 1.8.3 | High-performance cryptographic hash | Apache 2.0 or CC0 1.0 |
| SQLite3 | 3.47.0 | Embedded SQL database engine | Public Domain (Zlib) |
11. FAQ
Q: Copy speed is slower than expected
A: Possible causes: 1) Source and destination are on the same physical disk; 2) Destination disk has low write speed; 3) Verification algorithm overhead. Use "Tools → Disk Speed Test" to benchmark the target drive, the "System Information" tool to check disk status, and verify whether source and destination are on the same disk.
Q: What to do when verification fails
A: Verification failure means the destination file content doesn't match the source. Possible causes: 1) Disk errors; 2) File was modified during copy; 3) Network transmission errors (network drives). Re-run the task.
Q: Database is taking up too much space
A: Use the "Database Management" tool to view shard sizes and delete unneeded inactive shards. Each shard automatically creates a new file when exceeding 2GB.
Q: How to recover accidentally deleted tasks
A: Task deletion is soft. You can right-click and select "Restore" in the "Archive" tab to move tasks back to the queue. Use "Permanent Delete" in the archive for complete removal.
Q: Import shows "already exists"
A: The import function automatically checks for existing task IDs. Duplicate tasks are skipped. To overwrite, delete the existing task first.
Q: External drive removal causes task issues
A: The system automatically detects drive removal events and pauses related tasks. Manually resume tasks after reconnecting the drive.
Q: Not receiving email notifications
A: Troubleshoot in order:
- Verify "Settings → Notifications → Enable/Disable Sending" is checked
- Confirm the SMTP server address and port are correct
- Use the "Test Email" button to verify the configuration works
- Make sure you are using an authorization code, not your email login password
- Check your spam/junk folder
- Try switching the SMTP port (587 → 465)
Q: What is the relationship between the context menu "Enable Notification" and the task config "Notify on completion" checkbox
A: They are fully synchronized and control the same per-task notification toggle. The context menu item uses a checkable style with a checkmark when enabled; the task config panel uses a checkbox. Changes in either location are instantly reflected in the other. This toggle only controls the current task; the global SMTP configuration under Settings must also be properly set up for emails to be sent.
Q: How to get a QQ Mail SMTP authorization code
A: Log into QQ Mail web → Settings → Account → POP3/IMAP/SMTP Service → Enable SMTP service → Follow the instructions to send a verification SMS → Obtain the 16-digit authorization code. Enter this code in DataClonePro's "Authorization Code" field.
Q: Supported verification algorithms
| Algorithm | Description | Use Case |
| MD5 | 128-bit hash, fast | General verification |
| XXH64 | 64-bit non-cryptographic hash, extremely fast | Large file quick verification |
| XXH3 | 64-bit, XXH64 upgrade | High-performance scenarios |
| XXH128 | 128-bit, XXH64 upgrade | High-precision scenarios |
| BLAKE3 | 256-bit cryptographic hash, extremely fast | Secure verification |
| SHA256 | 256-bit cryptographic hash | High-security requirements |
| FileSize | Compare file size only | When content verification isn't needed |