我使用Visual Studio 2010與.NET 4.0。IOException在MailMessage中刪除使用的附件中的文件
我附上我的本地硬盤文件到MAILMESSAGE(即MailMessage.Attachements.Add(Attachment))
。之後我執行SmtpClient.Send(MailMessage)
命令,我遍歷安裝路徑和執行File.Delete(string path)
。不過,我立即得到一個System.IO.IOException
。
System.IO.IOException:進程無法訪問文件'c:\ temp \ test.docx',因爲它正在被另一個進程使用 at System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath) at System.IO.File.Delete(String path) ...
我想我可能無法刪除大文件,因爲它在SmtpClient.Send
命令期間仍然在流式傳輸。然而,這看起來發生在所有大小的文件(2 KB到8 MB)上。有人可以澄清發生了什麼事嗎?
有沒有辦法確保SmtpClient.Send
調用完成(它已完全發送附件中的電子郵件並在文件/附件上發佈所有鎖),然後再發出File.Delete調用?
另外,MailMessage應該被丟棄。 – 2011-03-25 21:22:47
@FrantišekŽiačik - 好點。 – Oded 2011-03-25 21:33:23
using語句對多個附件的工作方式如何?如果它是一個附件,這是有道理的,但對於每個MailMessage的多個附件,我不知道如何工作。你能舉個例子嗎? – jake 2011-03-25 21:36:43