Я использую Visual Studio 2010 с .NET 4.0.
Я прикрепляю файлы с локального жесткого диска к MailMessage (то есть MailMessage.Attachements.Add(Attachment))
. После выполнения команды SmtpClient.Send(MailMessage)
я перебираю пути вложения и выполняю File.Delete(string path)
. Однако я сразу получаю System.IO.IOException
.
System.IO.IOException: процесс не может получить доступ к файлу 'c: \ temp \ test.docx', поскольку он используется другим другим процессом.
в System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath)
в System.IO.File.Delete (Строковый путь)
...
Я подумал, что, возможно, я не смогу удалить большие файлы, потому что они все еще передавались во время команды SmtpClient.Send
. однако это, по-видимому, происходит для файлов всех размеров (от 2 КБ до 8 МБ). Может кто-нибудь, пожалуйста, уточнить, что происходит?
есть ли способ убедиться, что вызов SmtpClient.Send
завершен (он полностью отправил электронное письмо с вложениями и снял все блокировки на файлы / вложения), прежде чем выполнить вызов File.Delete?