System.Net.Mail - удаление файла-вложения

_Sania
Дата: 29.05.2006 10:55:43
Отправляю почту:

        
using System.Net.Mail;

namespace main_cons
{
    class Program
    {
        public void SendMail()
        {
                SmtpClient client = new SmtpClient();
                MailMessage mail = new MailMessage();

                client.Host = "SMTP_IP";
                client.Credentials = new System.Net.NetworkCredential("ЛОГИН", "ПАРОЛЬ");

                System.Net.Mail.Attachment ma =
                        new System.Net.Mail.Attachment(@"ИМЯ_ФАЙЛА");
                mail.Attachments.Add(ma);


                mail.Subject = "Test";
                mail.To.Add("TO");
                mail.From = new MailAddress("FROM");

                client.Send(mail);
                mail.Attachments.Clear();
                mail.Dispose();
        }

        static void Main(string[] args)
        {
            try
            {
				Program p = new Program();
                p.SendMail();
                GC.Collect();
                System.IO.File.Delete(@"ИМЯ_ФАЙЛА");
            }
            catch (Exception ex)
            {
                System.Console.Out.WriteLine(ex.Message);
            }
	}
}
}

На строке:
System.IO.File.Delete(@"ИМЯ_ФАЙЛА");
Получаю ошибку:
The process cannot access the file 'ИМЯ_ФАЙЛА' because it is being used by another process.

При этом письмо нормально доходит, но файл нельзя удалить даже вручную из проводника, пока не будет закрыта программа.

Можно это как-нибудь побороть?
_Sania
Дата: 29.05.2006 11:03:36
Сам виноват, забыл добавить:

ma.Dispose();

перед
mail.Attachments.Clear();

Так работает.