Тема: Работа с файловой системой в среде WIN32. Система оповещений



Тема: Работа с файловой системой в среде WIN32. Система оповещений.


Лабораторная работа. Работа с файловой системой в среде WIN32. Система оповещений.

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

Темы для предварительной проработки: файловые системы, графический интерфейс пользователя, структура оконного приложения в среде WIN32, интерфейс прикладного программирования API WIN32.

Теоретические сведения

Для отслеживания изменений в файловой системе в операционной системе Windows используется система извещений. Для начала отслеживания изменений в каталогах необходимо создать дескриптор контроля изменений и установить начальные условия фильтрации извещений об изменениях: FindFirstChangeNotification.

В этой функции можно задать каталог для отслеживания, необходимость анализа подкаталогов и виды изменений, которые должны отслеживаться. Возвращаемое значение – дескриптор обнаруженного объекта контроля изменений, который используется при контроле изменений с помощью функций WaitForSingleObject или WaitForMultipleObject.

В случае необходимости повторного ожидания извещения используется функция FindNextChangeNotification.

Для прекращения отслеживания изменений для заданного дескриптора используется функция FindCloseChangeNotification.

Пример. Вывод содержимого каталога в случае изменения имен файлов в нем.

#include <windows. h>

#include <stdio. h>

HANDLE hFind;

HANDLE g_hndl;

WIN32_FIND_DATA fd;

BOOL bRet = TRUE;

int main()

{

//инициализируем дескриптор уведомлений

g_hndl = FindFirstChangeNotification("D:\\TEMP",

FALSE, FILE_NOTIFY_CHANGE_FILE_NAME);

if(g_hndl == INVALID_HANDLE_VALUE)

{

printf("Invalid Handle\n");

}

//ожидание появления уведомлений

if(WaitForSingleObject(g_hndl, INFINITE) != WAIT_FAILED)

{

printf("File Name Changed!");

//Вывод списка файлов в директории

hFind = FindFirstFile("D:\\TEMP\\*.*", &fd );

while ( hFind!= INVALID_HANDLE_VALUE && bRet)

{

if ((fd. dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0)

{

printf("%s\n",fd. cFileName);

}

bRet = FindNextFile( hFind, &fd );

}

FindClose( hFind );

//Эта часть не нужна в данной программе - приведена для примера

/**/ if(FindNextChangeNotification(g_hndl) == FALSE)

/**/ {

/**/ printf("Find Next failed\n");

/**/ }

}

FindCloseChangeNotification(g_hndl);

return 0;

}

Постановка задачи: разработать приложение в среде программирования Visual C, которое отслеживает изменения в файловой системе и выводит сообщение, в соответствии с заданным вариантом. Для хранения промежуточных результатов можно использовать средства WIN32 API для работы с памятью.

Порядок выполнения работы

1. Ознакомиться с постановкой задачи и исходными данными. В соответствии с номером по журналу определить вариант задачи.

2. Согласно рекомендациям, приведенным в исходных данных, сконструировать структуру программы.

3. Составить тексты программ и утвердить их у преподавателя.

4. Пункты 1 - 3 должны быть выполнены предварительно до проведения данной лабораторной работы. Утверждение преподавателем текстов программ является допуском к лабораторной работе.

5. Набрать текст программы.

6. Выполнить компиляцию программы.

7. Провести анализ и исправление обнаруженных синтаксических ошибок в тексте программы и повторить пункты 6. и 7. При устранении всех синтаксических ошибок перейти к выполнению пункта 8.

8. Получить решение и, в случае обнаружения логических ошибок, описать и устранить их. Продемонстрировать преподавателю окончательный вариант программы и ее работу.

Содержание отчета

1. Тема лабораторной работы.

2. Цель работы.

3. Индивидуальное задание.

4. Метод и алгоритм решения задачи.

5. Текст программы.

6. Результаты работы программы.

7. Выводы по работе.

Индивидуальные задания

15. Имя каталога вводится с клавиатуры. Подкаталоги анализируются. Выводить имена удаляемых фалов и время их удаления.




Подпишитесь на рассылку:

Проекты по теме:

Основные порталы, построенные редакторами

Домашний очаг

ДомДачаСадоводствоДетиАктивность ребенкаИгрыКрасотаЖенщины(Беременность)СемьяХобби
Здоровье: • АнатомияБолезниВредные привычкиДиагностикаНародная медицинаПервая помощьПитаниеФармацевтика
История: СССРИстория РоссииРоссийская Империя
Окружающий мир: Животный мирДомашние животныеНасекомыеРастенияПриродаКатаклизмыКосмосКлиматСтихийные бедствия

Справочная информация

ДокументыЗаконыИзвещенияУтверждения документовДоговораЗапросы предложенийТехнические заданияПланы развитияДокументоведениеАналитикаМероприятияКонкурсыИтогиАдминистрации городовПриказыКонтрактыВыполнение работПротоколы рассмотрения заявокАукционыПроектыПротоколыБюджетные организации
МуниципалитетыРайоныОбразованияПрограммы
Отчеты: • по упоминаниямДокументная базаЦенные бумаги
Положения: • Финансовые документы
Постановления: • Рубрикатор по темамФинансыгорода Российской Федерациирегионыпо точным датам
Регламенты
Термины: • Научная терминологияФинансоваяЭкономическая
Время: • Даты2015 год2016 год
Документы в финансовой сферев инвестиционнойФинансовые документы - программы

Техника

АвиацияАвтоВычислительная техникаОборудование(Электрооборудование)РадиоТехнологии(Аудио-видео)(Компьютеры)

Общество

БезопасностьГражданские права и свободыИскусство(Музыка)Культура(Этика)Мировые именаПолитика(Геополитика)(Идеологические конфликты)ВластьЗаговоры и переворотыГражданская позицияМиграцияРелигии и верования(Конфессии)ХристианствоМифологияРазвлеченияМасс МедиаСпорт (Боевые искусства)ТранспортТуризм
Войны и конфликты: АрмияВоенная техникаЗвания и награды

Образование и наука

Наука: Контрольные работыНаучно-технический прогрессПедагогикаРабочие программыФакультетыМетодические рекомендацииШколаПрофессиональное образованиеМотивация учащихся
Предметы: БиологияГеографияГеологияИсторияЛитератураЛитературные жанрыЛитературные героиМатематикаМедицинаМузыкаПравоЖилищное правоЗемельное правоУголовное правоКодексыПсихология (Логика) • Русский языкСоциологияФизикаФилологияФилософияХимияЮриспруденция

Мир

Регионы: АзияАмерикаАфрикаЕвропаПрибалтикаЕвропейская политикаОкеанияГорода мира
Россия: • МоскваКавказ
Регионы РоссииПрограммы регионовЭкономика

Бизнес и финансы

Бизнес: • БанкиБогатство и благосостояниеКоррупция(Преступность)МаркетингМенеджментИнвестицииЦенные бумаги: • УправлениеОткрытые акционерные обществаПроектыДокументыЦенные бумаги - контрольЦенные бумаги - оценкиОблигацииДолгиВалютаНедвижимость(Аренда)ПрофессииРаботаТорговляУслугиФинансыСтрахованиеБюджетФинансовые услугиКредитыКомпанииГосударственные предприятияЭкономикаМакроэкономикаМикроэкономикаНалогиАудит
Промышленность: • МеталлургияНефтьСельское хозяйствоЭнергетика
СтроительствоАрхитектураИнтерьерПолы и перекрытияПроцесс строительстваСтроительные материалыТеплоизоляцияЭкстерьерОрганизация и управление производством

Каталог авторов (частные аккаунты)

Авто

АвтосервисАвтозапчастиТовары для автоАвтотехцентрыАвтоаксессуарыавтозапчасти для иномарокКузовной ремонтАвторемонт и техобслуживаниеРемонт ходовой части автомобиляАвтохимиямаслатехцентрыРемонт бензиновых двигателейремонт автоэлектрикиремонт АКППШиномонтаж

Бизнес

Автоматизация бизнес-процессовИнтернет-магазиныСтроительствоТелефонная связьОптовые компании

Досуг

ДосугРазвлеченияТворчествоОбщественное питаниеРестораныБарыКафеКофейниНочные клубыЛитература

Технологии

Автоматизация производственных процессовИнтернетИнтернет-провайдерыСвязьИнформационные технологииIT-компанииWEB-студииПродвижение web-сайтовПродажа программного обеспеченияКоммутационное оборудованиеIP-телефония

Инфраструктура

ГородВластьАдминистрации районовСудыКоммунальные услугиПодростковые клубыОбщественные организацииГородские информационные сайты

Наука

ПедагогикаОбразованиеШколыОбучениеУчителя

Товары

Торговые компанииТоргово-сервисные компанииМобильные телефоныАксессуары к мобильным телефонамНавигационное оборудование

Услуги

Бытовые услугиТелекоммуникационные компанииДоставка готовых блюдОрганизация и проведение праздниковРемонт мобильных устройствАтелье швейныеХимчистки одеждыСервисные центрыФотоуслугиПраздничные агентства

Блокирование содержания является нарушением Правил пользования сайтом. Администрация сайта оставляет за собой право отклонять в доступе к содержанию в случае выявления блокировок.