Иллюстрированный самоучитель по VB.NET



              


Монитор файловой системы - часть 2


Монитор активизируется следующей несложной процедурой:

Private Sub btnStart_Click(ByVal sender As System.Object,_

ByVal e As System.EventArgs)Handles btnStart.Click

If CheckPath()Then

FileSystemWatcherl.Path = txtDirectory.Text

FileSystemWatcherl.IncludeSubdirectories = chkRecursive.Checked

FileSystemWatcherl.EnableRaisingEvents = True

End If

End Sub

Для пущей надежности мы убеждаемся в том, что заданный каталог существует. При проверке используется класс Directory, поэтому программа должна импортировать пространство имен System. 10:

Function CheckPath()As Boolean

If Directory.Exists(txtDirectory.Text) Then

Return (True) Else

txtDirectory.Text= "" txtDirectory.Focus 0

MsgBox("No directory by that name exists!") Return False

End If End Function

Рис. 9.6. Пример использования компонента FileSystemWatcher

VB .NET автоматически подключает обработчик события. В следующем фрагменте при изменениях в заданном каталоге вызывается окно сообщения:

Private Sub FileSystemWatcherl_Changed(ByVal sender As Object.

ByVal e As System.IO.FileSystemEventArgs) Handles

FileSystemWatcher1.Changed

MsgBox(txtDirectory.Text & "has changed!")

End Sub

К сожалению, мы не сможем полностью описать этот замечательный компонент. Но прежде, чем вы перейдете к самостоятельным исследованиям, примите к сведению пару полезных советов:

  • Свойство Filter устанавливает фильтр для имен файлов и каталогов, за которыми вы хотите следить.

  • Существует много разных типов изменений, поэтому в реальных программах .рекомендуется более точно определять интересующие вас события. Например, если вы хотите, чтобы программа оповещалась только о создании новых файлов, организуйте обработку события Created.

    Если вам потребуется более точный контроль, обратитесь к описанию свойства NotifyFilter в электронной документации. Его значение задается в виде констант перечисляемого типа, объединенных оператором Ог, и определяет типы отслежи-

    ваемых изменениях.Например, можно отслеживать изменения атрибутов, имени и размера файла.

    Без задания свойств Filter и NotifyFilter программа, осуществляющая рекурсивный мониторинг активного или корневого каталога, становится практически бесполезной — событие Changed будет слишком часто срабатывать в результате обычных служебных операций Windows.




    Содержание  Назад