2008-10-18 75 views
6

我的應用程序處理來自不同來源的電子郵件,例如Outlook和IMAP郵箱。在解析它們之前,我將它們寫入臨時目錄(將它們保存在內存中不是選項)。在解析時,我可能會將附件寫入臨時目錄(例如,如果它們太大而無法保留在內存或全文提取中)。病毒掃描程序鎖定和刪除臨時文件 - 處理它們的最佳方法?

但在野外,發生兩件事情,似乎擺在首位很奇怪,但也都可以追溯到病毒掃描程序的行爲:

  • 我有時無法打開我已經文件自己寫了幾毫秒前。他們顯然被病毒掃描程序鎖定,以確保它們清潔。我收到一個例外。

  • 如果病毒掃描程序認爲文件有危險,它會在某個時間點刪除它們。

爲了解決這個問題,我已經寫了再試一次,如果打開失敗,或者如果存在的文件做一些檢查的一些方法,但我無法在應用程序的每一個部分使用它們(第3第三方代碼,例如過濾器),所以事情變得更好,但不是100%完美,因此我的源代碼看起來很難看。

如何應對病毒掃描程序?

回答

1

用加密書寫文件。我會認爲你不需要任何棘手或涉及的事情。也加密或破壞文件名,因爲病毒掃描器也可能被觸發。

+0

值得考慮的實用解決方案。不幸的是,有些文件是由無法寫入流的第三方庫編寫的,但這些文件可以用不同的方式處理。 不能解決病毒掃描程序鎖定文件的問題。 – 2008-10-21 07:18:34

-1

病毒掃描程序具有排除文件夾。只需查看文檔並將您的臨時文件夾添加到此列表。

+0

這是一個收縮包裝應用程序,而不是內部。我可以告訴我的用戶,但他們會忽略它或根本不讀它。 – 2008-10-18 10:27:35

0

您通常應該從病毒掃描程序中排除郵件過濾文件,並使用專門的郵件防病毒程序,它位於收到的郵件系列管中。絕對可以考慮讓用戶關閉他們郵件服務器上的'刪除受感染文件'選項,否則他們可能會丟失郵件數據庫: - /。舉例來說,這裏是你如何可以配置AV忽略交易所: http://www.sophos.com/support/knowledgebase/article/12214.html 但另一種方式來看待它是有文件中的病毒,所以你可能不希望提供反正;-)

以前的答案說改變權限,只有你的進程可以訪問文件。那不行;任何值得其鹽的AV都將在內核中運行,並且無論如何都可以訪問這些文件。

4

如果更改病毒掃描程序配置不是您的理想選擇。你可以保持文件從創建到打開文件的過程結束嗎?如果您掌握了該文件,它將無法用於病毒掃描程序。