比较本地文件和云文件(使用Dropbox和DropNet lib)

时间:2014-04-01 10:36:37

标签: c# dropbox-api file-comparison dropnet

在C#中我正在使用DropNet lib创建一个同步本地文件和Dropbox文件夹的客户端 如果云和本地文件夹中都存在相同的文件,我该如何检查它们是否相同,或者哪两个更新? 如果我将云文件的ModifiedDate与本地文件的LastWriteTime进行比较,则这些日期总是相互冲突,可能是因为客户端时间与保管箱的服务器时间不同。 如何进行有效的文件比较?

2 个答案:

答案 0 :(得分:4)

Dropbox API允许您与普通的Dropbox生态系统进行交互,在与Dropbox同步时,单个帐户上可能有超过2个客户端。为了协调这一点,Dropbox服务器被认为是事实的来源。因此,当您与Dropbox同步时,目的是您应该尽快从服务器获取所有更改,并报告服务器的所有本地更改。

沿着这些方向,虽然Dropbox API目前没有提供获取远程文件的文件ID或散列的方法(虽然我们将其作为功能请求添加)但它确实提供了一些方法来了解文件是否具有远程更改,以便您可以更新本地状态。通过/ metadata API调用在特定路径上使用文件的“rev”属性的一种方法:

https://www.dropbox.com/developers/core/docs#metadata

如果自上次检查以来转速已发生变化,则该路径中的文件已更改。

另一种方法是使用/ delta:

https://www.dropbox.com/developers/core/docs#delta

您可以偶尔打电话给我,了解您需要对当地州进行的任何更改,以便及时更新。

答案 1 :(得分:0)

逐字节比较可能是最正确的方法。阅读此链接以获取有关文件哈希的讨论。

https://stackoverflow.com/a/7931320/1706610

这是一个逐字节文件比较方法的好链接。

http://www.dotnetperls.com/file-equals