C # FileSystemWatcher не отлавливает перенаправление Perforce - PullRequest
1 голос
/ 10 декабря 2008

C # FileSystemWatcher не перехватывает возврат Perforce. Он отлично работает, когда тот же файл изменен. Это вызывает проблему, потому что возврат изменяет файл, но FileSystemWatcher не получает уведомления.

Как вы смотрите на откат Perforce?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 10 декабря 2008

Помимо проверки NotifyFilters, убедитесь, что вы подключаете обработчики ко всем событиям, которые есть в FileSystemWatcher. FileSystemWatcher имеет события для Изменено, Создано, Удалено и Переименовано.

Если вы присоединяетесь только к событию «Изменено» и не перехватываете какие-либо события, то звучит так, будто Perforce может удалять и воссоздавать файл. Если это так, добавьте обработчики в события Deleted и Changed.

Документация NotifyFilters в msdn содержит пример кода, показывающего обработку всех событий.

1 голос
/ 10 декабря 2008

Правильно ли вы установили NotifyFilters? Из справки FileSystemWatcher ...

Существует несколько типов изменений, которые вы можете наблюдать в каталоге или файле. Например, вы можете отслеживать изменения атрибутов, даты и времени LastWrite или размера файлов или каталогов. Это можно сделать, установив для свойства NotifyFilter одно из значений NotifyFilters.

Возврат Perforce может также вернуться к предыдущему времени LastWrite, которое, если вы ищете только more недавнюю метку времени, не будет запускать обновление.

0 голосов
/ 10 декабря 2008

Я подозреваю, что отчет Perforce делает копию из временного файла, поэтому он не записывает данные в файл, а копирует в новый файл и удаляет предыдущий. Таким образом, поскольку файл не «записывается», вы не получаете уведомление. Это не поможет вам, хотя: (

0 голосов
/ 10 декабря 2008

Я попробовал пример исполняемого файла из CodeProject, похоже, он работает, должно быть, мой код плохой ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...