0

我写了一些安装/卸载软件。在我的 Uninst 程序中,我需要删除目录中的所有文件和 self 文件。如何在 Windows 中实现这一点?正在运行的文件被阻止

4

3 回答 3

2

这不是真正的 Qt 问题,而是更直接的 Windows。正如您所发现的,与 Linux 和 OSX 不同,您正在运行的文件被锁定,因此您无法在运行时删除它。

但是,您可以做的是使用RunOnce 注册表项单独运行程序一次,当用户登录时,它将为您执行文件的最终删除。如文档中所述,RunOnce 条目在运行之前被删除,因此它按预期执行。

于 2013-09-09T14:35:40.627 回答
0

在 Windows 中无法删除当前处于打开状态的文件(并且可执行文件由操作系统本身保持打开状态)。大多数应用程序解决这个问题的方法是使用安装程序框架,然后有一个“启动时”处理程序来清理最后的剩余部分。

于 2013-09-09T14:35:24.673 回答
0

一个技巧是使用批处理文件进行最终清理;批处理文件可以自行删除。那是因为这种情况下的实际可执行文件是 CMD.EXE,不需要删除。

于 2013-09-09T15:56:16.687 回答