c# 删除文件失败,它正在被另一个进程使用

c# failed delete file, it is being used by another process

我的代码有什么问题??我错过了什么吗?我删除文件失败,它显示错误“它正在被另一个进程使用。请帮忙

            string filename = "C:/File/testExport_1234.pdf";
            string htmlfile = "C:/file/1234.html";

            using (StreamReader reader = new StreamReader(htmlfile))
            {
                MailMessage message = new MailMessage(emailFrom, emailTo, emailSubject, reader.ReadToEnd());
                message.IsBodyHtml = true;

                Attachment data = new Attachment(filename, MediaTypeNames.Application.Octet);

                data.Name = filename;  // set name here
                message.Attachments.Add(data);

                SmtpClient client = new SmtpClient("smtp.live.com");
                client.UseDefaultCredentials = false;
                client.Port = 587;
                client.EnableSsl = true;
                client.Credentials = new NetworkCredential("xxxxx@hotmail.com", "xxxxx", "hotmail.com");

                try
                {
                    client.Send(message);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}",
                                ex.ToString());
                }
            }

            if (File.Exists(filename))
            {

                File.Delete(filename);
                //File.Delete(path + code + ".html");
            }

您需要配置 SMTP 客户端以及 MailMessage.Use Using 语句:

 using (MailMessage Message = new MailMessage)
{ .....
   .......
    using (SmtpClient client = new SmtpClient)
    {
     .........
    }
}

要处理附件,请致电:

DisposeAttachments();