Inno setup Inno设置-检查是否存在多个文件夹

Inno setup Inno设置-检查是否存在多个文件夹,inno-setup,pascal,pascalscript,Inno Setup,Pascal,Pascalscript,我有一个自定义卸载页面,该页面通过以下行调用: UninstallProgressForm.InnerNotebook.ActivePage := UninstallConfigsPage; 现在,这只是每次卸载程序运行时显示页面,但我需要它仅在存在某些文件夹时显示(有6个文件夹)。我可以用一堆或来做一个if语句,但我想知道是否有更简洁的方法来做这件事。一般来说,没有比调用每个文件夹更好的方法了: 如果DirExists('C:\path1')或 DirExists('C:\path2')或

我有一个自定义卸载页面,该页面通过以下行调用:

UninstallProgressForm.InnerNotebook.ActivePage := UninstallConfigsPage;

现在,这只是每次卸载程序运行时显示页面,但我需要它仅在存在某些文件夹时显示(有6个文件夹)。我可以用一堆
来做一个
if
语句,但我想知道是否有更简洁的方法来做这件事。

一般来说,没有比调用每个文件夹更好的方法了:

如果DirExists('C:\path1')或
DirExists('C:\path2')或
DirExists('C:\path3'),然后
开始
{ ... }
结束;

尽管如此,在处理一组文件/文件夹时,建议将它们的列表存储在某个容器中(如或
字符串数组
),以允许它们(重复)批量处理。您已经从中获得了(
Dirs:TStringList

var
目录:TStringList;
开始
Dirs:=TStringList.Create();
Dirs.Add('C:\path1');
Dirs.Add('C:\path2');
Dirs.Add('C:\path2');
结束;
函数AnyDirExists(Dirs:TStringList):布尔; 变量 I:整数; 开始 对于I:=0到Dirs.Count-1 do 开始 如果存在Dirs(Dirs[I]),则 开始 结果:=真; 出口 结束; 结束; 结果:=假; 结束;

但我从中知道,你将所有路径映射到复选框。因此,您需要做的就是检查是否有复选框:

如果CheckListBox.Items.Count>0,则
开始
UninstallProgressForm.InnerNotebook.ActivePage:=UninstallConfigsPage;
{ ... }
如果卸载ProgressForm.ShowModal=mrCancel,则中止;
{ ... }
UninstallProgressForm.InnerNotebook.ActivePage:=UninstallProgressForm.InstallingPage;
结束;