我正在考虑编写一个程序(.Net)来备份计算机上的文件。我该如何继续了解哪些文件已更改为备份(我并不是真的想每次都扫描上次修改的日期。
是否有任何备份算法可用于仅备份已更改的文件的位。算法的O符号是什么?
发布于 2009-05-03 22:57:34
查看archive bit。这可能就是你想要的。
在.NET中它是System.IO.FileAttributes.Archive,它可以与VB中的SetAttr一起使用,也可以与System.IO.FileInfo.Attributes或System.IO.File.SetAttributes()一起使用。
任何检查上次修改时间或存档位的算法都将取决于驱动器上的目录数。由于这两个属性都存储在目录中,因此计时将取决于文件系统及其缓存级别。分析备份效率的一种更有效的方法可能是查看已更改的数据块数量。
发布于 2009-05-03 22:54:27
我可以建议在你最喜欢的搜索引擎中搜索'rsync for windows‘吗?
发布于 2009-05-03 23:01:16
您无法避免扫描所有文件,但这仅限于读取目录扇区。对于一次普通的驾驶还是需要一段时间。除了文件日期之外,每个文件条目上都有一个存档位。在备份文件后,不要忘了清除它。
因此复杂度将为O(n),其中n是文件的数量。
https://stackoverflow.com/questions/818243
复制相似问题