我正在使用下面的代碼在內容的本地驅動器中創建一個文件。該進程無法訪問該文件,因爲它正在被另一個進程使用
File.WriteAllLines(path, contents);
我將此文件附加到郵件併發送給團隊。一旦郵件發送我需要刪除的文件,刪除我使用下面的代碼的文件,但我得到的運行時錯誤
File.Delete(path);
錯誤消息:該進程無法訪問該文件,因爲它正在使用另一個過程
默認情況下,WriteAllLines()方法關閉文件,但它仍然由另一個進程打開。我只能在某段時間之後通過執行代碼來刪除文件,但這不是這種情況。郵件發送後我需要刪除它。
更新
System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();
mailMessage.To.Add(new System.Net.Mail.MailAddress(recipient, ToName));
mailMessage.From = new System.Net.Mail.MailAddress(From, FromName);
mailMessage.Subject = Subject; // "Outlook calendar as attachment"; // modified by Srikanth J on 28/06/2012
mailMessage.Body = "This is a test message";
System.Net.WebClient webclient = new System.Net.WebClient();
webclient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
for (int i = 0; i < item.Attachments.Count; i++)
{
string url = item.Attachments.UrlPrefix + item.Attachments[i];
SPFile file = item.ParentList.ParentWeb.GetFile(url);
mailMessage.Attachments.Add(new System.Net.Mail.Attachment(file.OpenBinaryStream(), file.Name));
}
System.Net.Mail.Attachment mailAttachment = new System.Net.Mail.Attachment(path);
mailMessage.Attachments.Add(mailAttachment);
smtp.Send(mailMessage);
任何幫助appriciated,謝謝。
似乎將文件附加到郵件的過程仍然保存文件? –
你可以發佈附加文件的代碼嗎? @CuongLe建議,這很可能是問題所在。 –
@CuongLe你的意思是即使在發送郵件之後,它仍然由郵件進程持有? – Srikanth