我正在编写一个程序来查找文件夹中的文件,将文件附加到MailMessage并使用SmtpClient发送电子邮件。
成功发送电子邮件后,我想将电子邮件文件移动到其他文件夹。
我收到此消息“进程无法访问该文件,因为它正由另一个进程使用。”我试过Thread.Sleep()但是没有用。
smtpClient.Send(mail);
foreach (var report in reports)
{
string source = Path.Combine(reportsFolder, report);
string destination = Path.Combine(sentReportsFolder, report);
File.Move(source, destination);
}
答案 0 :(得分:0)
首先,尝试处理你的smtpclient类:
smtpClient.Send(mail);
smtpClient.Dispose();
http://msdn.microsoft.com/pt-br/library/system.net.mail.smtpclient.dispose.aspx
但是,在创建类时,您可以使用using statemant。
像:
using (SmtpClient smtpClient = new SmtpClent()) {
//attach file
smtpClient.Send();
}
这将确保在发送电子邮件后,该类将释放可能被该类锁定的所有资源。因此,您无需显式调用.Dispose()。
http://msdn.microsoft.com/pt-br/library/system.net.mail.smtpclient.aspx