1

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

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

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

但是这种方法很愚蠢,因为每次都删除文件夹 B。

如果文件夹 A 中只有微小的变化,我们有什么办法只是稍微改变目标文件夹?

4

1 回答 1

1

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

您当前解决此问题的攻击方法是每天简单地删除文件夹 B 并将 A 中的所有内容复制到 B 中。

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

检查更改。

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

“修改时间”:“2021-08-13T06:39:56.708Z”,

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

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

我会打扰。

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

于 2021-08-13T06:49:33.100 回答