2016-08-02 30 views
0

So mache ich ein Outlook-Add-in, wo ich das Programm liest E-Anhänge und speichert sie in den Fenstern: (c) Verzeichnis. Aber ich möchte, dass das Programm E-Mail-Anhänge aus dem Verzeichnis löscht, nachdem das Programm die Anhänge gelesen hat.Wie kann ich programmatisch löschen E-Mail-Anhänge, nachdem ich sie auf meiner Festplatte speichern

Code:

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

Also im Wesentlichen möchten Sie auf welches Programm warten, das den bestimmten Dateityp behandelt, um zu schließen, bevor Sie die Datei löschen? –

Antwort

1

nicht sicher, was Ihre Programmstruktur aussieht, aber können Sie entweder: a) behält den Überblick über alle Anlagedateien Sie in der Instanz der Anwendung erstellen oder b) Scan das Anlagenverzeichnis für die Liste der Anlagen, die Sie löschen möchten.

dann mit dieser Information können Sie einfach über Ihre Liste durchlaufen und löschen Sie die Dateien, die System.IO.File Klasse Löschen Funktion:

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

Ja, der von Ihnen bereitgestellte Code hat funktioniert. aber es hat ein Problem. Es löscht die PDF-Dateien nicht. Das Programm gibt eine Ausnahme von "System.IO.IOEXception" aus, und die Datei PMP.pdf wird bereits in einem anderen Programm ausgeführt. –

+0

Das liegt daran, dass Ihre Zieldatei (in diesem Fall PMP.pdf) gesperrt ist, weil sie von einem anderen Programm oder einem Benutzer geöffnet wurde. Wenn eine Datei verwendet wird, können Sie sie natürlich nicht löschen. Sie müssen herausfinden, ob dies auf Ihre Testumgebung zurückzuführen ist oder ob es sich um ein mögliches Szenario in der Produktion handelt. Wenn dies der Fall ist, würde ich diese Datei überspringen (try-catch, die Ihren Delete-Aufruf umgibt) und die Liste weiter durchlaufen. – Overhed