Мое приложение имеет дело с электронными письмами из разных источников, например, Почтовые ящики Outlook и IMAP. Прежде чем анализировать их, я записываю их во временную директорию (хранить их в памяти нельзя). При синтаксическом анализе я мог бы писать вложения во временный каталог (например, если они слишком велики для хранения в памяти или для полнотекстового извлечения).
Но в природе происходят две вещи, которые вначале казались очень странными, но все они могут быть связаны с поведением антивирусного сканера:
Иногда я не могу открыть файлы, которые я сам написал несколько миллисекунд назад. Они явно заблокированы вирусными сканерами, чтобы гарантировать, что они чисты. Я получаю исключение.
Если антивирусный сканер считает файлы опасными, он удаляет их в определенный момент времени.
Чтобы справиться с этим поведением, я написал несколько методов, которые пытаются снова, если открытие не удается, или делают некоторые проверки, если файлы существуют, но я не могу использовать их в каждой части приложения (сторонний код, для пример фильтров), так что все стало лучше, но не на 100% идеально, и из-за этого мой исходный код выглядит некрасиво.
Как вы справляетесь с вирусными сканерами?