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

Монитор файловой системы

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

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.IO:

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

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
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.