удалите файл вложения

я использую Систему. Сеть. Почта для отправки почты в asp.net.. как удалить файл вложения после того, как это, отправляют как почта вложения.. я пытался использовать Файл. Удалите метод.. но я получаю эту ошибку.. процесс не может получить доступ к файлу path\fun.jpg', потому что он используется другим процессом.спасибо

14
задан SAK 18 May 2010 в 12:17
поделиться

2 ответа

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

var filePath = "C:\\path\\to\\file.txt";
var smtpClient = new SmtpClient("mailhost");
using (var message = new MailMessage())
{
    message.To.Add("to@domain.com");
    message.From = new MailAddress("from@domain.com");
    message.Subject = "Test";
    message.SubjectEncoding = Encoding.UTF8;
    message.Body = "Test " + DateTime.Now;
    message.Attachments.Add(new Attachment(filePath));
}
if (File.Exists(filePath)) File.Delete(filePath);
Console.WriteLine(File.Exists(filePath));

Вывод: False

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

26
ответ дан 1 December 2019 в 10:02
поделиться

Вы не можете удалить прикрепленный файл после отправки письма. Перед отправкой вы можете удалить.

В сообщении об ошибке указано, что указанный вами путь использует другой процесс.

MailMessage Message = new MailMessage();

Message.Subject = "Attachment Test";
Message.Body = "Check out the attachment!";
Message.To.Add("webmaster@15Seconds.com");
Message.From = "someone@somedomain.com";

Message.Attachments.Add(new Attachment(memorystream, "test.txt", MediaTypeNames.Application.Text));

Обратите внимание, что мы создали вложение из MemoryStream, и нам нужно назвать вложение как угодно. Имя вложения во втором параметре - это имя файла в электронном письме, а не имя на локальном системном жестком диске. На самом деле вложение никогда не попадает на локальный жесткий диск. Третий параметр - это Mime-тип вложения, в нашем случае это текст.

Изменить: используйте Dispose () в почте

1
ответ дан 1 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: