Skip to content

AdonsKali/Technology-development-lab1

Repository files navigation

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 1 «Мониторинг файлов»

Выполнил: Деревянкин Я.В Группы: 932321

Постановка задачи Разработать консольное приложение для мониторинга изменений файлов в файловой системе. Программа должна позволять пользователю: 1.Добавлять файлы для отслеживания (поддерживаются пути с кириллицей) 2.Удалять файлы из отслеживания 3.Просматривать список отслеживаемых файлов 4.Запускать и останавливать мониторинг изменений 5.Отслеживать следующие события: 1.Создание файла 2.Удаление файла 3.Изменение размера файла

Предлагаемое решение Реализовать программу с использованием сигнально-слотного механизма и паттерна Singleton для менеджера файлов. Создать сущность FileManager, которая будет следить за состояниями текущих файлов, создать структуру FileState, в которой будет два поля (exists и size), создать интерфейс Logger, который обеспечит слабую связанность и независимость от реализации вывода. Создать реализацию ConsoleLogger, который будет выводить информацию в консоль.

Сущности и классы

  1. Logger (Интерфейс логирования) Интерфейс для логирования событий. Определяет набор методов для записи различных событий мониторинга. Методы: logFileAdded() - файл добавлен в отслеживание logFileRemoved() - файл удален из отслеживания logFileCreated() - файл создан на диске logFileDeleted() - файл удален с диска logFileModified() - файл изменен logMonitoringStarted() - мониторинг запущен logMonitoringStopped() - мониторинг остановлен logError() - ошибка logInfo() - информационное сообщение logPrompt() - приглашение к вводу
  2. ConsoleLogger (реализация Logger для вывода в консоль)
  3. FileManager (Singleton) Центральный класс управления мониторингом. Содержит коллекцию отслеживаемых файлов и управляет процессом проверки.

Методы: getInstance() - получение экземпляра (Singleton) addFiles() - добавление файлов removeFile() - удаление файла startMonitoring() - запуск мониторинга stopMonitoring() - остановка мониторинга listFiles() - вывод списка файлов checkFiles() - проверка изменений файлов

  1. FileState (структура) Хранит состояние файла между проверками. Поля: exists - существует ли файл size - размер файла в байтах

UML-диаграмма (https://drive.google.com/file/d/12165x1_xOokjeGLCl5pz6tfMdJ0QRHhu/view?usp=sharing)

Инструкция пользователя Команда Описание add <путь, путь…> C:\test\file2.txt remove < путь> Удалить файл из отслеживания list Получить список отслеживаемых файлов start [интервал] Начать мониторинг с [интервал] stop Остановить мониторинг help Вывести команды exit | quit Выйти из программы

Тестирование Case 1: Добавление файлов Вход: add C:\Users\AdonsKali\Desktop\some_file.txt Результат: Файлы успешно добавлены

Case 2: Добавление файлов с кириллицей в пути Вход: add C:\Users\Test\Desktop\привет.txt, C:\Users\Test\Desktop\мир.txt Результат: Файлы успешно добавлены, пути отображаются корректно

Case 3: Добавление нескольких файлов Вход: add C:\Users\AdonsKali\Desktop\file1.txt, C:\Users\AdonsKali\Desktop\файл1.txt Результат: Файлы успешно добавлены

Case 4: Добавление несуществующего файла Вход: add C:/Users/AdonsKali/Desktop/not_exist.txt list Результат: Файл добавлен в список со статусом "не существует"

Case 5: Добавления существующего файла Вход: add C:\Users\AdonsKali\Desktop\file1.txt add C:\Users\AdonsKali\Desktop\file1.txt Результат: Файл уже отслеживается

Case 6: Удаление файла Вход: add C:\Users\AdonsKali\Desktop\file1.txt remove C:\Users\AdonsKali\Desktop\file1.txt Результат: Файл успешно удален из отслеживания

Case 7: Удаление несуществующего файла Вход: add C:\Users\AdonsKali\Desktop\file1.txt remove C:\Users\AdonsKali\Desktop\file1.txt remove C:\Users\AdonsKali\Desktop\file1.txt Результат: Файл не найден

Case 8: Запуск мониторинга с пустым списком Вход: start Результат: Нет файлов для отслеживания

About

Репозорий предназначен для разработки ПО на c++ с использованием QT

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors