Mi aplicación se ocupa de correos electrónicos provenientes de diferentes fuentes, p. Buzones de correo de Outlook e IMAP. Antes de analizarlos, los escribo en el directorio temporal (mantenerlos en la memoria no es una opción). Durante el análisis, es posible que esté escribiendo archivos adjuntos en el directorio temporal (por ejemplo, si son demasiado grandes para guardarlos en la memoria o para la extracción de texto completo).Escáneres de virus que bloquean y eliminan archivos temporales: ¿la mejor forma de lidiar con ellos?
Pero en la naturaleza, ocurren dos cosas que parecía muy extraño en el primer lugar, pero todo podría remontarse a un comportamiento explorador de virus:
estoy veces no se puede abrir ficheros que he me escribí hace unos milisegundos. Obviamente, están bloqueados por escáneres de virus para garantizar que estén limpios. Recibo una excepción.
Si el analizador de virus considera que los archivos son peligrosos, los elimina en algún momento.
Para hacer frente a este comportamiento, he escrito algunos métodos que intentan de nuevo si falla abierta o hacer algunas comprobaciones si existen archivos, pero soy incapaz de utilizarlos en cada parte de la aplicación (tercera código de la fiesta, por ejemplo filtros), así que las cosas mejoraron, pero no fueron 100% perfectas y mi código fuente se ve feo en algunas partes debido a esto.
¿Cómo lidiar con los escáneres de virus?
Una solución pragmática que vale la pena considerar. Lamentablemente, algunos archivos están escritos por bibliotecas de terceros que no pueden escribir en las transmisiones, pero podrían tratarse de otra manera. No resuelve los problemas con los escáneres de virus que bloquean archivos. –
Hay formas de "enganchar" el proceso de escritura de archivos para que incluso las bibliotecas de terceros escriban encriptadas. Quizás incluso al dejar los identificadores de archivo abiertos para evitar que los escáneres de virus indiquen que ya terminaste de trabajar con el archivo. –