病毒扫描程序锁定和删除临时文件 – 处理它们的最佳方法是什么?

我的应用程序处理来自不同来源的电子邮件,例如Outlook和IMAP邮箱。 在解析它们之前,我将它们写入临时目录(将它们保留在内存中不是一个选项)。 在解析时,我可能正在写临时目录的附件(例如,如果它们太大而无法保留在内存中或用于全文提取)。

但在野外,有两件事情发生在一开始似乎很奇怪,但都可以追溯到病毒扫描程序的行为:

  • 我有时无法打开几毫秒前我自己写过的文件。 它们显然被病毒扫描程序锁定,以确保它们是干净的。 我得到一个例外。

  • 如果病毒扫描程序认为文件存在危险,则会在某个时间点将其删除。

为了应对这种行为,我写了一些方法,如果打开失败再次尝试,或者如果文件存在则进行一些检查,但是我无法在应用程序的每个部分使用它们(第三方代码,例如filter) ,所以事情变得更好,但不是100%完美,因为这个原因,我的源代码看起来很难看。

你如何应对病毒扫描程序?

用加密编写文件。 我认为你不需要任何太棘手或涉及的东西。 还加密或破坏文件名,因为病毒扫描程序也可能被触发。

如果更改病毒扫描程序配置不是您的理想选择。 你可以保持文件在创建过程中一直打开吗? 如果您掌握了该文件,它将无法用于病毒扫描程序。

您通常应该从病毒扫描程序中排除邮件过滤文件,并使用专用的邮件防病毒程序,该程序位于收到的邮件系列管中。 绝对考虑要求用户关闭其邮件服务器上的“删除受感染文件”选项,否则可能会丢失邮件数据库: – /。 例如,以下是如何配置AV以忽略Exchange: http : //www.sophos.com/support/knowledgebase/article/12214.html但另一种看待它的方法是文件中有病毒,所以无论如何你可能不想提供它;-)

之前的回答是说要更改权限,以便只有您的进程才能访问这些文件。 那不行; 任何值得盐的AV都将在内核中运行,无论如何都可以访问这些文件。

病毒扫描程序有排除文件夹 只需查看文档并将临时文件夹添加到此列表中即可。