在我正在开发的桌面应用程序中,我希望有一个功能来存储和同步本地保存文件。基本上,我希望有一个同步按钮(或程序启动时自动执行),执行以下操作:
基本上,我希望本地文件夹和存储帐户在同步结束时具有相同的文件;但只保留较新版本。
为此,我首先尝试通过DateTime比较它们;这是一个例外。每次我同步时,由于上传/下载日期时间所需的时间都会在几秒钟后关闭。因此,本地版本或云版本似乎总是比另一个更新;每当按下同步按钮时,引导程序找到要同步的内容。我们总是可以在比较时设置一个时间阈值,但这听起来并不像是一个有效的解决方案。
有没有办法通过时间比较来完成这项工作?或者有没有办法比较实际文件,看看文件是否已更改?还是其他任何解决方案?
注意:使用File.GetLastWriteTime()获取本地文件的时间,然后获取" Last-Modified"来自存储blob日期响应的标题。并使用DateTime.Compare()来比较它们。
答案 0 :(得分:-2)
您可以使用Etag属性补充日期。每次blob修改时都会更新此属性。
这篇文章介绍了使用Etag管理blob: https://azure.microsoft.com/en-us/blog/managing-concurrency-in-microsoft-azure-storage-2/
您可以找到有关blob服务标头的更多详细信息,它可以帮助您执行同步: https://docs.microsoft.com/fr-fr/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations