3

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

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

我以为我曾经读过一种方法来注册要在下次重新启动时删除的文件,类似于安装程序和 Windows 更新所做的,但我现在找不到任何信息。我可以在这里使用类似的功能吗?

4

2 回答 2

2

请参阅知识库文章如何移动当前正在使用的文件。如那里所述,您需要在 NT(包括 2000、XP、Vista 和 Windows 7)和旧操作系统版本上使用不同的方法,如果您的应用程序仍在这些版本上运行。

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

于 2010-07-01T22:14:27.333 回答
0

您可以注册或存储打开的文件,然后在下次启动应用程序时尝试删除临时 PDF 文件吗?因此,让您的应用程序在下次进行整理。用户应该在那时关闭它。

于 2010-07-01T22:08:28.387 回答