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;
结束;