备份算法

时间:2009-05-03 22:52:32

标签: .net windows algorithm backup

我正在编写一个程序(.Net)来备份计算机上的文件。我将如何继续了解哪些文件已更改为备份(我真的不想每次扫描最后修改日期。

是否有备份算法仅用于备份文件的位已更改。该算法有哪些O符号?

4 个答案:

答案 0 :(得分:2)

检查archive bit。这可能是你想要的。

在.NET中它是System.IO.FileAttributes.Archive,可以与VB中的SetAttr一起使用,或System.IO.FileInfo.AttributesSystem.IO.File.SetAttributes()

检查上次修改时间或存档位的任何算法都取决于驱动器上的目录数。由于两个属性都存储在目录中,因此时间取决于文件系统及其缓存级别。分析备份效率的更有效方法可能是查看已更改的块数。

答案 1 :(得分:1)

我可以建议您在自己喜欢的搜索引擎中搜索“rsync for windows”吗?

答案 2 :(得分:1)

您不会逃避扫描所有文件,但这仅限于读取目录扇区。平均驾驶还需要一段时间。除了文件日期之外,每个文件条目都有一个Archive位。备份文件后不要忘记清除它。

因此复杂性将为O(n),其中n是文件数。

答案 3 :(得分:0)

这是我在脚本中用于备份的一个非常好的简单内容:http://www.mikerubel.org/computers/rsync_snapshots/

基于此,第一种方法是构建文件修改时间数据库,并在每次制作备份副本时对其进行比较/更新。除了datetime之外,我还会保留文件大小并将其添加到比较中。