gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:31:43 26 4
gpt4 key购买 nike

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

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

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

最佳答案

参见知识库文章 How To Move Files That Are Currently in Use .如此处所述,您需要在 NT(包括 2000、XP、Vista 和 Windows 7)和旧操作系统版本上使用不同的方法,如果您的应用程序仍在这些操作系统上运行。

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

关于c# - 如何删除仍在其他程序中打开的临时文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3162004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com