2010-07-01 61 views
3

我的程序寫入臨時PDF文件(使用Path.GetTempFileName),然後將其傳遞給默認PDF處理程序(通常爲Adobe Reader)以供顯示。我的Main方法中有一個finally塊用於刪除臨時文件,但如果在我的程序關閉時Adobe Reader仍然處於打開狀態,則這些文件保持打開狀態並且無法刪除。如何刪除在其他程序中仍然打開的臨時文件?

一個解決辦法只是離開他們那裏,假設用戶有一天會清除他的臨時文件夾;這些文件每個只有1.5 MB。但是有更好的方法嗎?

我想我有次我讀的方式來註冊文件在下次重新啓動,類似於安裝程序和Windows Update做被刪除,但現在我找不到它的任何信息。有沒有像我可以在這裏使用的功能?

+0

你可以將文件流式傳輸到pdf閱讀器的標準輸入嗎? – 2013-08-11 20:43:03

回答

2

請參閱知識庫文章How To Move Files That Are Currently in Use。如上所述,如果您的應用仍然運行在這些平臺上,則需要在NT(包括2000,XP,Vista和Windows 7)以及舊版操作系統上使用不同的方法。

Pinvoke.net具有管理的Win32 API調用和常量涉及的定義。

0

,您可以註冊或保存打開的文件(S),然後下一次你的應用程序啓動嘗試刪除臨時PDF文件?因此,下次讓您的應用程序保持整潔。那麼用戶應該已經關閉了。

相關問題