文件同步和备份


最近在写一个文件同步和备份的软件,特此记录

同步

单向同步

同步选项

  • 选项一: 源目录的文件和目标目录的文件都发生修改:

    • 覆盖文件: 源目录 -> 目录目录

    • 跳过文件: 不作任何处理

  • 选项二: 源目录的文件被删除时,是否删除目标目录的文件

同步逻辑

第一次同步会获取源目录和目标目录所有文件的信息, 并将信息写入本地。这时源目录下所有文件都是新增的。后续同步会获取源目录和目标目录所有文件的信息, 并对比本地信息的修改来进行同步。

  • 源目录无修改: 无操作

  • 源目录新增文件: 对比信息文件判断是否新增

    • 目标目录无修改: 源目录 -> 目录目录

    • 目标目录新增文件: 选项一

  • 源目录修改文件: 对比信息文件判断是否修改

    • 目标目录无修改: 源目录 -> 目录目录

    • 目标目录修改文件: 选项一

    • 目标目录删除文件: 源目录 -> 目录目录

  • 源目录删除文件: 对比信息文件判断是否删除

    • 目标目录无修改: 源目录 -> 目录目录

    • 目标目录修改文件: 选项一

    • 目标目录删除文件: 无操作

镜像同步

同步选项

  • 单向同步选项一: 覆盖文件

  • 单向同步选项二: 同步删除目标目录的文件

同步逻辑

逻辑同单向同步

双向同步

同步选项

  • 选项一: 源目录的文件和目标目录的文件都发生修改:

    • 保留最新的文件: 对比文件修改时间,如果源目录的文件最新, 则覆盖目标目录的文件; 反之,覆盖源目录的文件

    • 以源目录为准: 源目录 -> 目录目录

    • 以目标目录为准: 源目录 <- 目录目录

    • 跳过文件: 不作任何处理

  • 选项二: 源目录的文件被删除时,是否删除目标目录的文件

  • 选项三: 目标目录的文件被删除时,是否删除源目录的文件

同步逻辑

第一次同步会获取源目录和目标目录所有文件的信息, 并将信息写入本地。这时源目录下所有文件都是新增的。后续同步会获取源目录和目标目录所有文件的信息, 并对比本地信息的修改来进行同步。

  • 源目录无修改: 对比信息文件判断

    • 目标目录新增文件: 源目录 <- 目录目录

    • 目标目录修改文件: 源目录 <- 目录目录

    • 目标目录删除文件: 源目录 <- 目录目录

  • 源目录新增文件: 对比信息文件判断是否新增

    • 目标目录无修改: 源目录 -> 目录目录

    • 目标目录新增文件: 选项一

  • 源目录修改文件: 对比信息文件判断是否修改

    • 目标目录无修改: 源目录 -> 目录目录

    • 目标目录修改文件: 选项一

    • 目标目录删除文件: 源目录 -> 目录目录

  • 源目录删除文件: 对比信息文件判断是否删除

    • 目标目录无修改: 源目录 -> 目录目录

    • 目标目录修改文件: 源目录 <- 目录目录

    • 目标目录删除文件: 无操作

作者: honmaple
链接: https://honmaple.me/articles/2023/08/文件同步和备份.html
版权: CC BY-NC-SA 4.0 知识共享署名-非商业性使用-相同方式共享4.0国际许可协议
wechat
alipay

加载评论