我打算编写一个程序,通过互联网在多台计算机上实时同步一个文件夹。我想知道是否有任何同步算法来处理文件同步冲突,即计算机A试图保存文件,而计算机B已删除该文件。有没有同步算法/参考可用于同步目录?
2
A
回答
8
你给出的例子正是为什么同步被认为是一个难题。
计算机A已删除计算机B仍有的文件。现在:你怎么知道文件是否被添加到B上,并且应该被复制到A上,或者在A上被删除,并且应该在B上被删除?你没有,真的。许多同步系统有可能发生相互冲突的变化,这些变化需要人工解决。
许多工具已经建成做到同步,包括:
- 版本控制系统,如CVS,Subversion的,水银,GIT中,Perforce公司等
- 独立,单向同步方案。他们无法处理任何一方的更改,但可以使目标目录与源目录完全相同。这比完整的COPY要好,因为它速度更快,但它基本上是一样的。例子包括Windows上的rsync,ROBOCOPY和XCOPY/MIR。
- 易于使用的互联网同步工具,可以同步多台机器上的文件夹。例子包括Windows Live文件夹和Dropbox。这些应用程序通常通过在子目录中创建两个版本的额外副本来解决冲突,以便稍后将其排除。他们真的认为将会有非常少的冲突。在复杂的应用
- 内置的同步,例如,电子邮件/联系人/日历中的Microsoft Exchange同步的Lotus Notes等
3
你也可能想看看Unison。它是一个多向文件同步工具,它使用rsync算法确保只发送文件的变化部分。
相关问题
- 1. 同步算法
- 2. 同步算法
- 3. Visual Studio“项目”参考同步问题
- 4. 同步Fx:Succeesfully同步,但没有数据同步
- 5. 有没有办法同步这个?
- 6. 有没有办法同步检查套接字可用数据?
- 7. 同步线程 - 没有UI
- 8. xbee之间没有同步
- 9. Process.StandardOutput.ReadLine()没有正确“同步”
- 10. AXIS:OperationDesc没有同步到一个方法
- 11. 记录中属性同步的算法
- 12. 同步条目顺序的算法
- 13. 有没有办法同步不同的Word文档的部分?
- 14. 哲学家同步算法
- 15. 同步的“参考”或实例
- 16. .NET CLR - 对象参考同步
- 17. 等同于静态同步方法的同步块?
- 18. 同步所有方法的类将表现为同步块?
- 19. ConcurrentModificationException的具有同步和非同步方法
- 20. 异口同声地同步在目录中的文件,但没有文件夹
- 21. 有没有办法使用fs同步函数与browserify?
- 22. 有没有使用nexus同步储存库的方法?
- 23. 从同步块调用此同步方法可以吗?
- 24. 使用lsyncd同步多个目录
- 25. 同步不同步
- 26. 有没有办法同步等待在Javascript中完成递归异步函数?
- 27. 从同步区(有效的Java项目)
- 28. 异步方法调用同步方法
- 29. 在同步方法内同步(this)块
- 30. 同步方法VS同步块