C# 如何删除在其他程序中仍然打开的临时文件?

C# 如何删除在其他程序中仍然打开的临时文件?,c#,windows,temporary-files,delete-file,C#,Windows,Temporary Files,Delete File,我的程序编写临时PDF文件(使用Path.GetTempFileName),然后将其传递给默认的PDF处理程序(通常是Adobe Reader)进行显示。我在删除临时文件的主方法中有一个finally块,但是如果我的程序关闭时Adobe Reader仍然打开,那么文件将保持打开状态,无法删除 一种解决方案是将它们留在那里,并假设用户有一天会清除他的临时文件夹;每个文件只有1.5 MB。但是有更好的办法吗 我想我曾经读过一篇文章,介绍了一种在下次重新启动时注册要删除的文件的方法,类似于安装程序和W

我的程序编写临时PDF文件(使用
Path.GetTempFileName
),然后将其传递给默认的PDF处理程序(通常是Adobe Reader)进行显示。我在删除临时文件的主方法中有一个
finally
块,但是如果我的程序关闭时Adobe Reader仍然打开,那么文件将保持打开状态,无法删除

一种解决方案是将它们留在那里,并假设用户有一天会清除他的临时文件夹;每个文件只有1.5 MB。但是有更好的办法吗


我想我曾经读过一篇文章,介绍了一种在下次重新启动时注册要删除的文件的方法,类似于安装程序和Windows Update所做的操作,但是我现在找不到任何相关信息。我可以在这里使用这样的功能吗?

您可以注册或存储打开的文件,然后下次应用程序启动时尝试删除临时PDF文件吗?所以,下次让你的应用程序负责整理。用户当时应该已经关闭了它

参见知识库文章。如上所述,如果你的应用程序仍然在NT(包括2000、XP、Vista和Windows7)和旧版操作系统上运行,你需要在NT(包括2000、XP、Vista和Windows7)和旧版操作系统上使用不同的方法


已管理了Win32 API调用的定义和涉及的常量。

您能将文件流式传输到pdf阅读器的标准文本吗?