Мониторинг изменений в файловой системе
Если вам необходимо следить за изменениями файлов в одном или нескольких каталогах (например, содержащих файлы журнала и дампы памяти), вы можете использовать экземпляр типа МониторФайловойСистемы
. Функция мониторинга поддерживается для всех операционных систем (Windows, Linux и macOS).
Чтобы начать работу с монитором, вызовите метод Отслеживать()
типа МониторФайловойСистемы
и укажите каталог для отслеживания, как описано ниже. Для завершения работы монитора вызовите метод Закрыть()
.
Задать каталог для отслеживания изменений
Создайте экземпляр типа Файл
и передайте его в метод Отслеживать()
типа МониторФайловойСистемы
, чтобы задать путь к каталогу, изменения в котором вы хотите отслеживать. Если каталог не найден или указанный элемент файловой системы не является каталогом, то выбрасывается ИсключениеНедопустимыйАргумент
.
пер Каталог = новый Файл("C:\\TargetDirectory")
исп Монитор = новый МониторФайловойСистемы()
Монитор.Отслеживать(Каталог)
Если указанный каталог содержит вложенные каталоги, вы можете использовать параметр Глубина
, чтобы указать, сколько уровней вложенности должен учитывать монитор при отслеживании изменений:
Монитор.Отслеживать(Каталог, Глубина = 3)
Если вам необходимо отслеживать изменения только определенных файлов в каталоге, используйте параметр ИменаФайлов
, чтобы указать нужные файлы. Вы можете задать шаблон поиска или регулярное выражение для фильтрации файлов. Например, чтобы отслеживать изменения только в лог-файлах, используйте следующий фильтр:
Монитор.Отслеживать(Каталог, ИменаФайлов = "*.log")
Указать вид событий для отслеживания
Элементы перечисления ВидСобытияФайловойСистемы
позволяют вам указать, какие виды событий файловой системы необходимо отслеживать. Поддерживаются следующие виды событий:
Создание
— создание файла или подкаталога;Удаление
— удаление файла или подкаталога;Изменение
— изменение файла или подкаталога;ПотеряСобытий
— специальное событие, указывающее на потерю событий файловой системы. Это происходит, когда файловая система не успевает обработать поступающие события и буфер событий переполняется. Рекомендуем вам обрабатывать это событие отдельно: например, полностью пересмотреть каталог и заново выполнить все необходимые операции.
В примере ниже показано, как отслеживать появление новых файлов в каталоге:
пер Каталог = новый Файл("C:\\TargetDirectory")
исп Монитор = новый МониторФайловойСистемы()
Монитор.Отслеживать(Каталог, ВидыСобытий = ВидСобытияФайловойСистемы.Создание)