我有函數來創建PDF,然後通過郵件發送附件。文件正在被其他進程使用,同時刪除文件
功能創建PDF:
public string CreatePdf()
{
try
{
using (document = new Document())
{
if (File.Exists(filePath))
{
workStream.Dispose();
File.Delete(filePath);
}
// LOGIC to Create PDF
return filePath;
}
}
catch (Exception)
{
throw;
}
finally
{
document.Close();
document.Dispose();
workStream.Close();
}
}
要添加到附件:
myMail.attachment = new Attachment(new CreatePdf());
當我爲它創建創建罰款第一次文件,但是當我嘗試再次創建PDF我得到以下錯誤File.Delete(filePath)
The process cannot access the file because it is being used by another process.
我看到了其他類似的問題,但無法弄清楚什麼需要完全關閉,因爲我已經關閉了所有東西。
附件也應該配置。否則,他們會保持鎖定附件 – Steve
不要像這樣檢查File.Exists()。只需調用File.Delete()並處理異常。而且,那個catch塊沒有意義。您可以將其刪除,然後自行離開。 –
Joel感謝我提出的改變。 – Nikitesh