以下のコードを使用して、コンテンツを含むローカル ドライブにファイルを作成しています。
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);
どんな助けでも感謝します、ありがとう。