【问题标题】:C# FileSystemWatcher does not catch a Perforce revertC# FileSystemWatcher 没有捕获 Perforce 还原
【发布时间】:2008-12-10 02:00:39
【问题描述】:

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

您如何观察 Perforce 还原?

谢谢。

【问题讨论】:

    标签: filesystemwatcher


    【解决方案1】:

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

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

    msdn 上的NotifyFilters documentation 包含显示所有事件处理的示例代码。

    【讨论】:

      【解决方案2】:

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

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

      Perforce 恢复也可能恢复到之前的 LastWrite 时间,如果您只是在寻找更多最近的时间戳,则不会触发更新。

      【讨论】:

        【解决方案3】:

        我尝试了一个来自 CodeProject 的示例可执行文件,它似乎可以工作,一定是我的代码很糟糕......

        【讨论】:

          【解决方案4】:

          我怀疑 Perforce 报告会从临时文件中进行复制,因此它实际上并没有写入文件,而是复制到一个新文件中并删除了前一个文件。因此,由于文件没有被“写入”,因此您不会收到通知。不过对你没有帮助:(

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-07-03
            • 2018-01-17
            相关资源
            最近更新 更多