2016-08-02 43 views
0

因此,我正在製作一個Outlook附加程序,讓程序讀取電子郵件附件並將它們保存在窗口中:(c)目錄。但我希望程序在完成閱讀附件後從目錄中刪除電子郵件附件。我將程序保存在我的硬盤上後,如何以編程方式刪除電子郵件附件

代碼:

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

因此,基本上你想在刪除文件之前等待處理特定文件類型的任何程序關閉。 –

回答

1

不知道你的程序結構是什麼樣子,但您可以:1)跟蹤所有你創建的應用實例的附件文件或b)掃描要刪除的附件列表的附件目錄。

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

是的,你提供的代碼工作。但它確實有問題。它不會刪除PDF文件。程序拋出一個'System.IO.IOEXception'的異常,並且PMP.pdf已經在一個不同的程序中運行。 –

+0

這是因爲您的目標文件(本例中爲PMP.pdf)由於被其他程序或用戶打開而被鎖定。很明顯,如果一個文件正在使用中,您將無法刪除它。您需要弄清楚這是由於您的測試環境還是生產環境中的可能情況。如果是這樣,那麼我會跳過該文件(圍繞您的刪除調用的try-catch)並繼續遍歷該列表。 – Overhed

0

要刪除文件: System.IO.File.Delete(path)

https://msdn.microsoft.com/en-us/library/system.io.file.delete(v=vs.110).aspx

然後用這個信息,你可以只使用有System.IO.File類刪除功能遍歷你的清單,刪除文件

你可以通過文件夾裏面的文件迭代

https://msdn.microsoft.com/en-us/library/07wt70x2(v=vs.110).aspx

string [] fileEntries = Directory.GetFiles(targetDirectory); 
foreach(string fileName in fileEntries) 
{ 
     System.IO.File.Delete(fileName); 
}