繁体   English   中英

备份算法

[英]Backup Algorithm

我正在寻找编写用于在计算机上备份文件的程序(.Net)。 我该如何继续知道哪些文件已更改为备份(我真的不想每次都扫描上次修改的日期。

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

检查存档位 这可能是您想要的。

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

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

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

您将无法避免扫描所有文件,但是仅限于读取目录扇区。 平均开车还需要一段时间。 除文件日期外,每个文件条目上都有一个“存档”位。 备份文件后,请不要忘记清除它。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM