以下のコードを使用して、コンテンツを含むローカルドライブにファイルを作成しています。プロセスがファイルにアクセスできません。別のプロセスで使用されているためです。
私はこのファイルをメールに添付し、チームに送信しています。メールたら私はコードの下に使用していたファイルを削除するには、ファイルを削除する必要が送られたが、私はランタイムエラーを取得しています
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されて、ありがとうございます。私は最終的にあなたがこれをしたい場合は、私はあなたのファイルを書き込むことを示唆しているファイルハンドルをreleseか
try
{
//attach file
//send mail
}
finally
{
//set finally handle to null
// or close the file
}
//after this delete the file
ファイルをメールに添付するプロセスがまだファイルを保持しているようですか? –
ファイルを添付するコードを投稿できますか? @CuongLeが提案したように、問題がある可能性が最も高いです。 –
@CuongLeメールを送信した後でも、それはメールプロセスによってまだ保持されていますか? – Srikanth