我想制作一个安装程序,用于将包含文件的文件夹“解压”到特定位置 - 我使用 Inno Setup 向导完成了此操作,但存在一个问题,因为我想首先检查具有该名称的文件夹是否已存在,以及是否存在所以重命名新的:
检查文件夹
example
是否存在于 location
中 – 是,将新文件夹重命名为 example_2
并将其放入 location
– 否,将 example
放入 location
。
我在帮助文件中发现有一个函数
int DirExists
但没有示例等。而且我不知道如何正确使用它:(
使用脚本常量通过使用 if
DirExists
支持功能:来实现唯一的目标路径解析
[Files]
Source: "subdir\*"; DestDir: "{code:GetUniquePath}";
[Code]
var
UniqueName: string;
function GetUniquePath(Param: string): string;
var
BasePath: string;
I: Integer;
begin
if UniqueName = '' then
begin
I := 2;
BasePath := ExpandConstant('{app}\subdir');
UniqueName := BasePath;
while DirExists(UniqueName) do
begin
UniqueName := BasePath + '_' + IntToStr(I);
Inc(I);
end;
Log('Unique destination path resolved to: ' + UniqueName);
end;
Result := UniqueName;
end;
上面的代码解析第一次调用时的路径(对于子文件夹中的第一个文件)。有些人可能更喜欢提前解决路径,如这个类似的问题所示:
在 Inno Setup 中选择一个目录来安装预定义集中的文件