使用Inno Setup卸载创建的日志文件

时间:2015-02-07 14:24:04

标签: inno-setup uninstall

我的应用程序设置为应用程序将写入的日志文件创建一个新目录。

[Dirs]
Name: "{app}\log"; Permissions: users-modify

现在当它被卸载时,我希望删除日志文件,以及日志目录。这通常不会发生,因为卸载程序不知道日志文件,也不会删除日志文件,并且日志目录不为空,因此也不会删除。

所以我添加它来删除文件:

[UninstallDelete]
; Delete log files
Type: files; Name: "{app}\log\*.log"; Check: not IsDowngradeUninstall

请注意,在由其他代码确定的降级卸载时不应发生这种情况。

现在我对Inno Setup文档感到困惑。它说最后处理[UninstallDelete]个项目,i。即删除从其他部分创建的任何内容后。这是否意味着使用此代码我的日志文件将被删除,但日志目录不是?我还需要在UninstallDelete部分重复这样的事情:

Type: dirifempty; Name: "{app}\log"

哦,我可能还需要一个{app}本身,因为只要'log'还在那里就不能删除它......

如果Inno Setup可以以他们可以实际工作的方式订购商品,那会不会更聪明?或者它已经这样做了吗?

1 个答案:

答案 0 :(得分:0)

如果文件夹是由安装程序创建的,则无需手动删除该文件夹。

您可以使用/ LOG命令行参数运行卸载程序。 您将在日志(在用户的临时文件夹中)中找到以下事件:

  • 安装程序尝试删除您的文件夹,但失败了,因为里面有一些意外的文件。它还说它稍后会重试。
  • 安装程序执行删除* .log
  • 的代码
  • 在最后安装程序将再次尝试删除文件夹(成功)