CamSync 是一个用于自动检测、预览和同步相机存储卡文件的工具。它可以帮助摄影师和摄影爱好者轻松管理和备份相机中的照片和视频文件,并具有独特的U盘配置保存机制。
- 设备检测:自动识别插入的 USB 存储设备(如相机存储卡)
- 文件夹识别:检测存储设备中是否存在 DCIM、PRIVATE、MISC 文件夹
- 配置管理:
- 为每个识别到的目标文件夹自动创建配置文件
- 配置文件保存在对应的U盘中,便于跨设备使用
- 支持通过配置文件设置差异化备份策略(增量 / 全量 / 不备份)
- 可配置是否需要复制前预览
- 自动记录和管理已保存和未保存的文件列表,下次操作时直接跳过已知文件
- 文件操作:
- 支持增量复制(仅复制新文件或修改过的文件)
- 支持全量复制(覆盖现有文件)
- 智能跳过功能:根据U盘配置文件自动跳过已保存和未保存的文件,只处理新文件
- 复制前展示详细文件列表预览(含路径、大小等信息)
- 文件确认对话框:允许用户在确认窗口中预览、勾选/取消勾选文件,选择需要复制的文件
- 需用户手动确认后才执行复制操作
- 关闭确认窗口时默认执行取消复制操作,确保程序稳定运行
- 自动记录所有文件操作状态到U盘配置文件中
- 路径管理:可自定义本地备份路径
- 运行控制:
- 可视化界面显示运行状态
- 支持手动启动 / 停止监控
- 可选开机自启动功能
- 系统托盘常驻:关闭窗口时可选择最小化到系统托盘,保持后台监控
- 关闭确认对话框:首次关闭窗口时提供"最小化到托盘"和"直接关闭程序"选项,支持"不再询问"设置,程序会记住用户选择的关闭行为
- 优化的托盘交互:单击或双击托盘图标均可打开主窗口
- 日志记录:记录设备检测、文件操作等关键过程,使用深色主题 WebEngine 视图展示,不在控制台输出
- 确保安装了 Python 3.8 或更高版本
- 克隆或下载本项目
- 安装依赖:
pip install -r requirements.txt - 运行程序:
python main.py
- 运行程序后,主界面会显示当前的监控状态
- 点击"开始监控"按钮开始检测 USB 存储设备
- 插入相机存储卡后,程序会自动检测并识别目标文件夹
- 对于识别到的文件夹,程序会提示创建配置文件或使用已有配置
- 根据配置,程序会显示文件确认对话框,展示待复制文件列表
- 在确认对话框中,您可以:
- 查看文件名称、大小等信息
- 使用"全选"复选框快速选择或取消选择所有文件
- 单独勾选或取消勾选特定文件
- 点击"确认复制"按钮开始执行文件复制操作,点击"取消"按钮或关闭对话框则取消操作
- 确认后,程序开始执行文件复制操作
- 关闭窗口时,系统会显示确认对话框,提供"最小化到托盘"和"直接关闭程序"选项
- 勾选"不再询问"后,后续关闭窗口将按照您上次选择的方式执行(最小化到托盘或直接关闭程序)
- 在系统托盘中单击或双击图标,均可打开主窗口
- 要完全退出程序,请右键点击系统托盘图标并选择"退出"
配置文件保存在对应U盘的根目录下,文件名为 CamSyncConfig.json,实现了设备级别的配置隔离。配置项包括:
- 备份策略(增量/全量/不备份)
- 本地备份路径
- 是否需要预览
- 已保存文件列表:记录用户已选择复制的文件
- 未保存文件列表:记录用户未选择复制的文件
- 其他高级选项
程序运行日志保存在 logs 目录下,可以通过日志了解设备检测和文件操作的详细过程。
项目使用 Python 开发,主要依赖包括:
- PyQt6:用于创建图形用户界面
- PyQt6-WebEngine:提供深色主题的日志和文件预览视图
- psutil:用于获取系统信息
- pywin32(Windows平台):用于访问 Windows API
本项目采用 MIT 许可证。