同步文件系统,如何检测文件是否已更改?

时间:2009-03-16 16:14:06

标签: synchronization

我需要编写一个简单的备份组件来将文件夹及其子文件夹同步到服务器。对于增量备份,我只想上传更改的文件。跟踪文件系统更改的最佳方法是什么?一些现有的软件如tortoisesvn和office groove具有检测文件变化的能力。我想知道实现类似事情的最佳方法是什么。

谢谢!

2 个答案:

答案 0 :(得分:2)

你的问题有些含糊不清:

如果您尝试浏览所有文件并确定哪些文件需要发送到备用服务器:

最简单的方法是比较修改时间;如果您的本地系统上的文件在备份系统之后被修改,则它已更改并且备份需要更新。 (可以使用类似touch的内容修改文件的修改时间,但对于简单的情况,您可能不需要担心这一点)

更复杂(计算成本更高)的方法是计算文件的哈希码,并进行比较;如果散列不同,则需要进行备份。

如果您尝试检测文件被更改的时刻:

您可以使用FileSystemWatcher(在C#/ Windows中)或等效语言/操作系统。

答案 1 :(得分:1)

如果Mac OS X有一个名为FSEvents的东西。 Windows中也必须有一些服务。