删除Windows中的运行文件

时间:2013-09-09 14:28:13

标签: c++ windows qt

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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