sync google 驱动文件夹算法

sync google drive folder algorithm

假设源文件夹是文件夹 A。目标文件夹是文件夹 B。

每个时间段(可能是 1 天),删除 文件夹 B,我使用递归编程将文件夹 A 复制到文件夹 B。

我这样做是因为这是最简单的方法。

但是这个方法很笨,因为每次都要删除文件夹B

有什么办法吗如果文件夹A只有一点点变化,我们就稍微改变一下目标文件夹?

如果我对你的理解正确的话,你有一个主文件夹 A,里面有一些文件。这些文件可能会或可能会在一天中发生变化。每天一次,您想将文件夹 A 中的所有内容备份到文件夹 B。

您目前解决此问题的方法是每天删除文件夹 B,然后将所有内容从 A 复制到 B。

我同意这是最简单的选择,我真的没有看到任何问题,假设没有大量文件或大文件复制起来可能很耗时。

检查更改。

当您请求文件夹 A 中的文件时,您可以做的是检查文件的修改时间。它应该向您显示上次更改文件的时间。如果该文件自上次备份后未更改,则没有理由将其复制到文件夹 b。如果它已更改,则从文件夹 B 中删除该文件并将新文件复制到其中。

"modifiedTime": "2021-08-13T06:39:56.708Z",

现在这不考虑在文件夹 A 中创建的新文件,也不考虑可能已从文件夹 A 中删除的文件。

为此你需要做一个 file.list 并比较你目前在 A 和 b 中的内容。如果 A 有 B 不擅长的文件,那么它们是新文件,您需要将它们复制进来,如果 A 缺少一些在 B 中出现的文件,那么它们已被删除,您应该从 B 中删除它们。

我会打扰吗

在我看来,除非我们要处理超过 200 个文件,或者文件大于 10 MB,否则我认为我不会费心去改变你现在拥有的文件。虽然我同意检查将是一个更优雅的解决方案,但问题是如果你只复制 10 个文件,最终是否值得。