检测移动的文件事件

时间:2014-03-18 06:55:06

标签: windows filesystems

我正在尝试开发一个监视特定文件夹操作的应用程序,包括创建,删除,修改,移动,复制和重命名。

在引用FileSystemWatcher API之后,我发现它没有提供Move事件,而是为同一个文件生成单独的Delete和Create事件。当然,每次检测到Delete事件时我都可以等待Create事件,并决定它是否是Move事件,但对我来说有点奇怪,等待的适当时间也是一个问题。

实际上我发现Dropbox能够正确检测Move事件,即使Dropbox进程没有运行。 Dropbox团队的工作很好,我想知道他们是如何让它在地球上运作的。

所以我的目的很明确:从其他事件中过滤Move事件并使其脱机工作(这意味着当程序停止时)

1 个答案:

答案 0 :(得分:0)

嗯,从FileSystemWatcher的角度来看,移动操作基本上是“复制和删除”。在不知道有关实现的细节的情况下,我打赌DropBox会为每个文件存储一个哈希。如果文件在一个地方被删除并在另一个地方使用相同的哈希创建,则可能会被移动。你实际上可以做同样的事情。