使用Inno Setup卸载已创建的日志文件
问题描述:
我的应用程序设置为应用程序将写入的日志文件创建一个新目录。使用Inno Setup卸载已创建的日志文件
[Dirs]
Name: "{app}\log"; Permissions: users-modify
现在,当它被卸载时,我想要删除日志文件以及日志目录。这通常不会发生,因为日志文件对于卸载程序是未知的,并且不会被删除,并且日志目录不是空的,因此它也不会被删除。
所以我加入这个来删除这些文件:
[UninstallDelete]
; Delete log files
Type: files; Name: "{app}\log\*.log"; Check: not IsDowngradeUninstall
注意,这不应该是由其他代码确定降级卸载发生。
现在我对Inno Setup文档感到困惑。它说项目最后处理,我。即删除从其他部分创建的任何内容后。这是否意味着使用此代码我的日志文件将被删除,但日志目录不是?我还需要重复这样的事情在UninstallDelete部分:
Type: dirifempty; Name: "{app}\log"
哦,我可能还需要一个{app}
本身,因为它已经不能只要“日志”中删除了仍然存在......
如果Inno Setup可以按照他们实际上可以工作的方式排列东西,那它会不会更聪明?还是它已经这样做?
答
如果是由安装程序创建的,则不需要手动添加该文件夹的删除。
您可以使用/ LOG命令行参数运行卸载程序。 你会发现在日志(在用户的临时文件夹)以下事件:
- 安装程序试图删除文件夹,但它没有因为里面一些意想不到的文件。它还表示稍后会重试。
- 安装程序执行你的代码,删除* .LOG
- 在最后的安装程序会尝试再次删除文件夹(成功)
如果要删除整个目录,最好使用['filesandordirs'] (http://www.jrsoftware.org/ishelp/index.php?topic=uninstalldeletesection&anchor=filesandordirs)标志,而不仅仅是“文件”。 – TLama 2015-02-07 21:50:34
是的,但我想只删除我知道的文件类型。如果用户放置了其他东西,我也不想删除它。因此文件模式。 – ygoe 2015-02-07 21:54:55