Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 268

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 262 263 264 265 266 267 < 268 > 269 270 271 272 273 274 .. 404 >> Следующая


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

Иногда в задачу приложения входит нечто большее, чем просто чтение и запись файлов, хранящихся в файловой системе, и оказывается важным определить момент, когда в структуру файлов и директорий вносятся изменения. .NET Framework существенно облегчает создание приложений, которые могут выполнять поставленную задачу.

Класс, ПОЗВОЛЯЮЩИЙ нам добиваться ЭТОГО, называется FileSystemWotcher, Он обладает несколькими событиями, которые могут перехватываться приложениями, что дает им возможность реагировать на такие системные события соответствующим образом.

Основной способ использования класса Filesystemwatcher весьма прост. Сначала нужно задать значения свойств, с помощью которых можно определить, где следует осуществлять контроль, что при этом необходимо контролировать и когда следует генерировать события, которые будут обрабатываться нашим приложением. Затем сообщить адреса созданных обработчиков событий, с тем чтобы они могли вызываться в момент наступления значимых событий. Наконец, следует запустить программу и перейти ? режим ожидания наступления соответствующих событий.

В таблице на стр. 575 приведены свойства, которые необходимо задать до того, как ПОЯВИТСЯ ВОЗМОЖНОСТЬ использовать объект FileSystemWatcher.

После того как эти свойства будут заданы, необходимо создать обработчики событий ДЛЯ четырех различных событий — Changed, Created, Deleted и Renamed. Как известно из главы 12, для этого необходимо просто создать свой собственный
Работа с файлами

575

метод и присвоить его событию данного объекта. Присваивание вашего собственного обработчика событий этим методам приведет к тому, что именно ваш метод будет вызываться при наступлении соответствующего события. Все события будут возникать в тот момент, когда файл или директория, удовлетворяющая свойствам Path, NotifyFiiter и Filter, будет претерпевать изменения,

Свойство

Описание

Path

NotifyFiiter

Filter

Этот путь должен указывать па местоположение файла или директорию, подлежащие контролю.

Это свойство представляет собой некоторое сочетание значении перечислимого типа NotifyFilters, которое позволяет определить, за наступлением каких именно событий для данных файлов следует наблюдать. Они представляют свойства файлов или папок, за которыми ведется наблюдение. Если какое-либо нз указанных свойств оказывается измененным, то генерируется соответствующее событие.

Данный перечислимый тнп включает в себя следующие значения: Attributes, CreationTime, DirectoryName, Filename, LastAccess, LaatWrite, Security, Size. Обратите внимание на то, что допускается использование различных сочетаний этих значений посредством бинарного оператора or.

Фильтр, определяющий, какие именно файлы подлежат контролю, например, *.txf.

После задания указанных свойств и событий свойству EnabieRaisingEventa следует присвоить значение true, что будет означать начало наблюдения.

Практикум: наблюдение за состоянием файловой системы

1. Создадим более изощренный пример, в котором б) использоваться почти все, с чем мы познакомили в данной главе. Создайте новый проект.

Выберите на этот раз C# Windows Application и назовите его Filewatch.

2. Задайте свойства различных форм в соответствии с приведенной справа таблицей.

3. Используя приведенный ниже список, добавьте в форму необходимые управляющие элементы и задайте нх свойства:

? Textbox — Name: txtiiocation; Location: 8, 24; size: 184, 20; Text: отсутствует

? Button — Name: cmdarowse; Location: 208, 24; Size: 64, 240; Text: Browse...

? Button — Name: cmdwatch; Location: 88, 56; size: 80, 32; Text; Watch!;

Enabled: false (мы не имеем возможности следить за файлом,

до того как он будет задан)

? Label — Name: lblWatch; Location: 8, 104;

Size: 264, 32; Text: отсутствует

? OpenFileDialog — Name; FileDialog; .

Filter: All Files]*.*

В итоге ваша форма должна будет принять вид, изображенный на рисунке слева. Серое пространство в нижней части формы представляет собой

Свойство Значение
FonnBorderStyle FixedDialog
MaximizeBox False
MinimizeBox False
Size 302, 160
StartPosition CenterScreen
Text FileMonitor
576 Глава 20

управляющий элемент Label, о котором будет выводиться текущее состояние вашего приложения,

4. Для того чтобы работа выполнялась корректно, нам потребуется добавить некоторый код. Щелкните правой кнопкой мыши

на файле Formi.cs в Solution Explorer, а затем выберите мышью режим просмотра кода. Как всегда, нам придется добавить б проект пространство имен System.ю для того чтобы получить доступ к необходимым классам. Добавьте следующий код в начало файла Forrai.cs:

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.10;

5. Теперь необходимо добавить Б класс Forml класс Filesystemwatcher. После объявлений объектов winForms с модификатором private добавьте следующий код:

private System.Windows.Forms.TextBox txtLocation; private System.Windows.Forms.Button cmdBrowse; private System.Windows.Forms .Button cmdWatch; private System.Windows.Forms.Label 1ЫWatch; private System.Windows.Forms.OpenFileDialog- FileDialogi
Предыдущая << 1 .. 262 263 264 265 266 267 < 268 > 269 270 271 272 273 274 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.