【发布时间】:2008-12-10 02:00:39
【问题描述】:
C# FileSystemWatcher 不会捕获 Perforce 还原。修改同一个文件时它工作正常。这会导致问题,因为还原会更改文件,但 FileSystemWatcher 不会收到通知。
您如何观察 Perforce 还原?
谢谢。
【问题讨论】:
C# FileSystemWatcher 不会捕获 Perforce 还原。修改同一个文件时它工作正常。这会导致问题,因为还原会更改文件,但 FileSystemWatcher 不会收到通知。
您如何观察 Perforce 还原?
谢谢。
【问题讨论】:
除了检查 NotifyFilters 之外,请确保您将处理程序附加到 FileSystemWatcher 具有的所有事件。 FileSystemWatcher 具有 Changed、Created、Deleted 和 Renamed 事件。
如果您只是附加到 Changed 事件而不捕获任何事件,那么听起来 Perforce 可能正在删除并重新创建文件。如果是这种情况,请将处理程序添加到 Deleted 和 Changed 事件。
msdn 上的NotifyFilters documentation 包含显示所有事件处理的示例代码。
【讨论】:
您是否正确设置了 NotifyFilters?从 FileSystemWatcher 帮助...
您可以在目录或文件中观察多种类型的更改。例如,您可以观察属性、LastWrite 日期和时间或文件或目录大小的变化。这是通过将 NotifyFilter 属性设置为 NotifyFilters 值之一来完成的。
Perforce 恢复也可能恢复到之前的 LastWrite 时间,如果您只是在寻找更多最近的时间戳,则不会触发更新。
【讨论】:
我尝试了一个来自 CodeProject 的示例可执行文件,它似乎可以工作,一定是我的代码很糟糕......
【讨论】:
我怀疑 Perforce 报告会从临时文件中进行复制,因此它实际上并没有写入文件,而是复制到一个新文件中并删除了前一个文件。因此,由于文件没有被“写入”,因此您不会收到通知。不过对你没有帮助:(
【讨论】: