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

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

К числу принципиальных новшеств, отличающих VB.NET от предыдущих версий VB, относится и возможность сделать на сервере то, что в VB давно делалось для клиентов. Речь идет об инкапсуляции общей функциональности в элементах и многократном использовании кода. В завершение этой главы мы покажем, как использовать класс FileSystemMonitor для написания программы, которая отслеживает изменения в заданном каталоге и сигнализирует о них при помощи событий.

Программа может следить за каталогом или набором файлов, соответствующих заданному фильтру. Элемент FileSystemMonitor даже может произвести рекурсивный перебор всех подкаталогов заданного каталога. Инициируемые события перечислены в табл. 9.13.

Таблица 9.13. События монитора файловой системы.

Событие Описание
Changed Изменения в размере, системных атрибутах, времени последней записи, времени последнего обращения или привилегиях безопасности для подкаталога или файла
Created Создание подкаталога или файла
Deleted Удаление подкаталога или файла
Renamed Переименование подкаталога или файла

Впрочем, компонент FileSystemMonitor не всесилен – в частности, он не позволяет отслеживать изменения в самом каталоге. Если кто-то переименует файл, находящийся в каталоге, вы об этом узнаете, однако переименование самого каталога останется незамеченным (конечно, для отслеживания подобных изменений можно дополнительно следить за родительским каталогом).

Компонент FileSystemMonitor, как и все компоненты разных панелей элементов VS.NET, является конкретной реализацией более общего класса. В данном случае это класс FileSystemWatcher, производный от класса Component. Режим отслеживания подкаталогов включается следующей командой:

FileSystemWatcherl.IncludeSubdirectohes = True

На рис. 9.6 изображен примерный вид формы. Компонент FileSystemWatcher находится на вкладке Components. Визуального интерфейса он не имеет и поэтому при размещении на форме он отображается на служебной панели, показанной в нижней части рис. 9.6.

Иллюстрированный самоучитель по Visual Basic .NET › Ввод-вывод › Монитор файловой системы
Рис. 9.6. Пример использования компонента FileSystemWatcher

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