2016-08-02 2 views
0

Так что я делаю надстройку надстройки, где программа читает вложения электронной почты и сохраняет их в каталоге: (c). Но я хочу, чтобы программа удаляла вложения электронной почты из каталога после того, как закончила чтение программных вложений.Как я могу программно удалить вложения электронной почты после сохранения их на своем жестком диске

Код:

string path = @"C:\\att\\" + attachment.FileName; 
attachment.SaveAsFIle(Path); 
+0

По существу, вы хотите подождать, когда какая-либо программа, которая обрабатывает конкретный тип файла, должна быть закрыта до удаления файла? –

ответ

1

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

Затем с этой информацией, вы можете просто перебирать свой список и удалять файлы с помощью класса System.IO.File Удалить функцию:

foreach(var path in listOfAttachments) 
{ 
    System.IO.File.Delete(path); 
} 
+0

Да, код, который вы предоставили, работал. но у него есть проблема. Он не удаляет файлы PDF. Программа выдает исключение из «System.IO.IOEXception», а PMP.pdf уже запущен в другой программе. –

+0

Это потому, что ваш целевой файл (PMP.pdf в этом случае) заблокирован из-за открытия другой программой или пользователем. Очевидно, что если файл используется, вы не сможете его удалить. Вам нужно выяснить, связано ли это с вашей тестовой средой или если это возможный сценарий в производстве. Если это так, я бы пропустил этот файл (try-catch, окружающий ваш вызов Delete), и продолжайте повторять этот список. – Overhed

Смежные вопросы