Inno Setup:如何处理[UninstallDelete]部分上的进度条?

时间:2019-06-19 07:26:26

标签: progress-bar installer inno-setup pascalscript

我使用Inno Setup为我的应用制作安装程序。当用户卸载应用程序时,我想删除Program Data文件夹中的自定义文件夹,我的文件夹很大(大约15 GB),因此我使用[UninstallDelete]部分删除了该文件夹:

[UninstallDelete]
Type: filesandordirs; Name: "{commonappdata}\testFolder"

但是,当Inno Setup进入[UninstallDelete]部分时,进度条将显示为20%,并在该位置停留很长时间,然后“跳”至100%。
那么,如何在卸载应用程序时使进度条稳定增加?
谢谢!

1 个答案:

答案 0 :(得分:1)

我认为这真的不可能。

如果不大幅延长操作时间,则无法预测删除将执行多长时间。您将需要提前计算文件的数量,然后将其一一删除,然后计算进度。但是对文件进行计数也可能会花费大量时间。因此,它对您没有太大帮助,实际上可能会使情况更糟。在计算时,安装也将卡住(您无法完全预测会花费多长时间)。


尝试在Windows File Explorer中删除(而不是回收)文件夹。并检查操作处于“计算” 阶段的时间。

enter image description here

在我的测试中,删除时间花费了1/3。


您可以显示不确定/字幕进度条,而不是尝试显示实际进度(例如,上面的资源管理器)。也许会显示一些已删除文件,以使用户可以看到正在进展。


我实际上并不认为,您需要使卸载用户体验那么好。只显示消息说:

  

这可能要花几分钟...


您的跟进问题:
Inno setup - Progress bar doesn't show when uninstall