本软件是为电子科技大学《软件开发综合实验》课程设计的项目。
一个轻量、跨平台的文件备份工具,旨在提供快速、可靠的文件备份与恢复功能。
基础功能 (Basic):
- 文件/目录数据备份:将目录树中的文件数据保存到指定位置
- 文件/目录数据还原:将目录树中的文件数据恢复到指定位置
- 备份验证:对所备份数据的正确性进行检查
扩展功能 (Extension):
- 文件类型支持:支持特定文件系统的特殊文件(管道/链接/设备等)
- 元数据支持:支持特定文件系统的文件元数据(属主/时间/权限等)
- 定时备份:允许用户进行设置,进行周期性定时备份和数据淘汰
- 压缩/解压:通过文件压缩节省备份文件的存储空间
- 加密/解密:由用户指定密码,将所有备份文件均加密保存
- 打包/解包:将所有备份文件拼接为一个大文件保存
- 图形界面:实现友好易用的GUI界面
- 语言: C++
- 框架: Qt 跨平台
- 构建系统: CMake
- 版本控制: Git
- IDE: 建议使用 VS Code
todo
cmake -B build
cmake --build build
./build/file-backup-software-
备份选项
- 选择源路径与目标路径,可自定义备份名称。
- 支持压缩、加密、打包、保留元数据及特殊文件等选项。
- 点击“开始备份”即可执行,日志与进度将实时输出。
-
恢复/验证
- 选择备份文件(
.fbk)或备份目录,以及恢复目标路径。 - 若备份时启用了加密,请输入密码。
- 可执行恢复或仅验证备份有效性。
- 选择备份文件(
-
定时备份
- 在“设置”页启用定时备份,选择频率/时间以及需要保留的备份数量。
- 默认会使用备份页当前填写的参数,达到指定时间后自动触发备份,并自动删除超出保留数量的旧备份。
- 目录模式:在备份目标路径下生成
<时间_名称>目录,包含manifest.json与data/子目录。 - 打包模式:生成单个
.fbk文件,内部携带 manifest 与数据块,适合迁移或归档。
manifest 中会记录每个文件的类型、元数据、哈希值以及打包参数,从而支持校验、恢复与数据重建。
- 已完成:Qt GUI(备份/恢复/设置三个页),后台备份引擎(目录/打包两种模式),校验流程,定时任务(每天/每周/每月+保留数量清理),特殊文件/元数据保存,密码异或加密,哈夫曼编码压缩,自定义 manifest/包格式(
.fbk)。 - 已实现基础并通过本地构建:
cmake --build build
- 增加自动化测试(单测/集成测试)和回归脚本,覆盖备份-恢复-验证的完整链路。
- 强化错误处理和日志(区分严重级别、输出到文件)。
- 加密算法目前是简单异或,若有安全要求需更换为标准加密(如 AES)。
- 定时任务目前仅进程内生效,可考虑持久化计划、系统级后台任务或开机自启。
- 跨平台适配验证(Windows/不同 Linux 发行版)的特殊文件、权限、时间戳行为。
- CLI 模式或 headless 支持,便于脚本和服务器使用。