Практическое руководство. Создание обработчиков событий файловой системы

Обновлен: Ноябрь 2007

Компонент FileSystemWatcher генерирует четыре события в зависимости от типа изменений, произошедших в каталоге, за которым ведется наблюдение. Это следующие события:

  • Created — вызывается при каждом создании каталога или файла.

  • Deleted — вызывается при каждом удалении каталога или файла.

  • Renamed — вызывается при изменении имени каталога или файла.

  • Changed вызывается при изменении размера, системных атрибутов, времени внесения последних изменений или времени последнего доступа, а также разрешений безопасности NTFS файла или каталога.

    1e6szwcw.alert_note(ru-ru,VS.90).gifПримечание.

    Свойство NotifyFilter можно использовать для ограничения количества событий, генерируемых свойством Changed. Дополнительные сведения см. в разделе Практическое руководство. Настройка экземпляров компонента FileSystemWatcher.

Для каждого из этих событий можно определить обработчиков, автоматически вызывающих методы в коде при внесении соответствующех изменений. Обработчик событий — это метод, привязанный к событию для компонента, формы или элемента управления. Каждый обработчик событий предоставляет два параметра, позволяющие корректно обрабатывать события: параметр sender, обеспечивающий ссылку на объект, ответственный за событие, и параметр e, обеспечивающий объект, представляющий событие и соответствующие сведения.

Существует несколько способов создания обработчика событий для экземпляра компонента FileSystemWatcher, но проще всего позволить Visual Studio создать большую часть кода автоматически. При двойном щелчке экземпляра компонента FileSystemWatcher в конструкторе система Visual Studio открывает Редактор кода и создает обработчик событий Changed и вызываемую пустую процедуру. Теперь можно вписать операции по обработке, которые должны проходить в процедуре. Кроме того, можно создать собственных обработчиков для других событий.

Дополнительные сведения об обработчиках событий см. в разделе Обработка и вызов событий.

Создание обработчика по умолчанию для события Changed

  1. Создайте экземпляр компонента FileSystemWatcher. Дополнительные сведения см. в разделе Практическое руководство. Создание экземпляров компонента FileSystemWatcher.

  2. Задайте необходимые свойства компонента. Дополнительные сведения см. в разделе Практическое руководство. Настройка экземпляров компонента FileSystemWatcher.

  3. Находясь в конструкторе, дважды щелкните компонент FileSystemWatcher, для которого требуется создать обработчик.

    1e6szwcw.alert_note(ru-ru,VS.90).gifПримечание.

    На экране появится Редактор кода, а в код будет добавлено два элемента: обработчик, создающий и регистрирующий делегата, а также вызывающий процедуру, и пустая процедура для события Changed.

  4. В пустой процедуре для события Changed определите код для действий, выполняющихся при вызове события.

Создание обработчика для события FileSystemWatcher

  1. Создайте экземпляр компонента FileSystemWatcher. Дополнительные сведения см. в разделе Практическое руководство. Создание экземпляров компонента FileSystemWatcher.

  2. Задайте необходимые свойства компонента. Дополнительные сведения см. в разделе Практическое руководство. Настройка экземпляров компонента FileSystemWatcher.

  3. Создайте соответствующую процедуру, которая будет вызываться и определять код для обработки записей. В следующем примере кода показан обработчик событий Changed.

    Private Sub myWatcher_Changed(ByVal sender As System.Object, _
       ByVal e As System.IO.FileSystemEventArgs)
        Dim pathChanged As String
        pathChanged = e.FullPath
    End Sub
    
     private void myWatcher_Changed(object sender,
        System.IO.FileSystemEventArgs e)
        {
            string pathChanged = e.FullPath;
        }
    
    
  4. Присвойте экземпляр FileSystemEventHandler событию для компонента. В следующем примере добавлен обработчик событий Changed, заданный в шаге 3.

    AddHandler myWatcher.Changed, _
       New System.IO.FileSystemEventHandler(AddressOf Me.myWatcher_Changed)
    
         myWatcher.Changed +=
               new System.IO.FileSystemEventHandler(this.myWatcher_Changed);
    

См. также

Задачи

Практическое руководство. Создание экземпляров компонента FileSystemWatcher

Практическое руководство. Настройка экземпляров компонента FileSystemWatcher

Основные понятия

Знакомство с наблюдением за событиями файловой системы