C#FileSystemWatcher没有捕获Perforce还原

时间:2008-12-10 02:00:40

标签: filesystemwatcher

C#FileSystemWatcher没有捕获Perforce还原。修改相同的文件时,它工作正常。这会导致问题,因为还原会更改文件,但不会通知FileSystemWatcher。

你如何看待Perforce还原?

谢谢。

4 个答案:

答案 0 :(得分:3)

除了检查NotifyFilters之外,还要确保将处理程序附加到FileSystemWatcher具有的所有事件。 FileSystemWatcher具有Changed,Created,Deleted和Renamed事件。

如果您只是附加了Changed事件而没有捕获任何事件,那么听起来Perforce可能正在删除并重新创建该文件。如果是这种情况,请将处理程序添加到“已删除”和“已更改”事件中。

msdn上的NotifyFilters documentation有示例代码,显示了对所有事件的处理。

答案 1 :(得分:1)

您是否正确设置了NotifyFilters?从FileSystemWatcher帮助......

  

您可以在目录或文件中查看多种类型的更改。例如,您可以查看属性,LastWrite日期和时间或文件或目录的大小的更改。这是通过将NotifyFilter属性设置为NotifyFilters值之一来完成的。

Perforce还原还可以恢复到之前的LastWrite时间,如果您只查找更多最近的时间戳,则不会触发更新。

答案 2 :(得分:0)

我从CodeProject尝试了一个示例可执行文件,它似乎工作,必须是我的代码,这是不好的...

答案 3 :(得分:0)

我怀疑Perforce报告是从临时文件中复制的,所以它实际上不是写入文件,而是复制新文件并吹走前一个文件。因此,由于文件未被“写入”,因此您不会收到通知。但它没有帮助你:(