Skip to content

About

电子科技大学《软件开发综合实验》课程的文件备份软件实现

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

文件备份软件 (File Backup Software)

本软件是为电子科技大学《软件开发综合实验》课程设计的项目。

📖 项目简介 (Introduction)

一个轻量、跨平台的文件备份工具,旨在提供快速、可靠的文件备份与恢复功能。

✨ 主要功能 (Features)

基础功能 (Basic):

  • 文件/目录数据备份:将目录树中的文件数据保存到指定位置
  • 文件/目录数据还原:将目录树中的文件数据恢复到指定位置
  • 备份验证:对所备份数据的正确性进行检查

扩展功能 (Extension):

  • 文件类型支持:支持特定文件系统的特殊文件(管道/链接/设备等)
  • 元数据支持:支持特定文件系统的文件元数据(属主/时间/权限等)
  • 定时备份:允许用户进行设置,进行周期性定时备份和数据淘汰
  • 压缩/解压:通过文件压缩节省备份文件的存储空间
  • 加密/解密:由用户指定密码,将所有备份文件均加密保存
  • 打包/解包:将所有备份文件拼接为一个大文件保存
  • 图形界面:实现友好易用的GUI界面

🛠️ 技术栈 (Tech Stack)

  • 语言: C++
  • 框架: Qt 跨平台
  • 构建系统: CMake
  • 版本控制: Git
  • IDE: 建议使用 VS Code

跨平台技术栈版本维护与安装指南

todo

🚀 如何构建与使用 (Building from Source)

cmake -B build
cmake --build build
./build/file-backup-software

使用流程

  1. 备份选项

    • 选择源路径与目标路径,可自定义备份名称。
    • 支持压缩、加密、打包、保留元数据及特殊文件等选项。
    • 点击“开始备份”即可执行,日志与进度将实时输出。
  2. 恢复/验证

    • 选择备份文件(.fbk)或备份目录,以及恢复目标路径。
    • 若备份时启用了加密,请输入密码。
    • 可执行恢复或仅验证备份有效性。
  3. 定时备份

    • 在“设置”页启用定时备份,选择频率/时间以及需要保留的备份数量。
    • 默认会使用备份页当前填写的参数,达到指定时间后自动触发备份,并自动删除超出保留数量的旧备份。

备份格式

  • 目录模式:在备份目标路径下生成 <时间_名称> 目录,包含 manifest.json 与 data/ 子目录。
  • 打包模式:生成单个 .fbk 文件,内部携带 manifest 与数据块,适合迁移或归档。

manifest 中会记录每个文件的类型、元数据、哈希值以及打包参数,从而支持校验、恢复与数据重建。

📌 目前进度

  • 已完成:Qt GUI(备份/恢复/设置三个页),后台备份引擎(目录/打包两种模式),校验流程,定时任务(每天/每周/每月+保留数量清理),特殊文件/元数据保存,密码异或加密,哈夫曼编码压缩,自定义 manifest/包格式(.fbk)。
  • 已实现基础并通过本地构建:cmake --build build

🚧 待完善/可继续开发

  • 增加自动化测试(单测/集成测试)和回归脚本,覆盖备份-恢复-验证的完整链路。
  • 强化错误处理和日志(区分严重级别、输出到文件)。
  • 加密算法目前是简单异或,若有安全要求需更换为标准加密(如 AES)。
  • 定时任务目前仅进程内生效,可考虑持久化计划、系统级后台任务或开机自启。
  • 跨平台适配验证(Windows/不同 Linux 发行版)的特殊文件、权限、时间戳行为。
  • CLI 模式或 headless 支持,便于脚本和服务器使用。

About

电子科技大学《软件开发综合实验》课程的文件备份软件实现

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages