0

在 Windows 移动单元上,我正在使用的软件依赖于 sdf 文件作为它的数据库。该软件所针对的平台“不是最佳”,并且每隔一段时间就会硬重置。在遥远的过去,我们丢失了数据。现在我们关闭数据库,并将 SDF 文件复制到 SD 卡。如果设备硬重置,我们会恢复应用程序(也在 sd 卡上)和数据库。

我不关心恢复(还没有)。我们现在遇到的问题是,进行“备份”需要花费大量时间,因为 SDF 是 7+ 兆,并且写入 SD 卡很慢。

我的老板建议我们创建文件“块”的哈希值,然后仅当哈希值的比较为 != 时才写入目标文件。

所以这就是问题所在。
如果您只能拥有文件的一份副本,因此无法将其与原始文件进行比较,您将如何测试文件是否已更改。

我只是想进行一些头脑风暴。

4

1 回答 1

0

只需将您的块的散列存储在某处。如果您知道散列是什么,则不需要“备份”副本进行比较。显然,这会为至少一个散列创建一个先有鸡还是先有蛋的问题,但复制单个“块”是一个小得多的问题。

但是,您提出的方法仍然存在性能问题,因为在由电池供电的慢速 CPU 上散列一个大文件不会是一个漂亮的操作。

我假设您没有精细控制来跟踪您修改的文件部分,然后在需要备份时仅更新这些部分?

于 2009-12-10T01:15:58.513 回答