在 Inno Setup 中,您可以通过使用 [Code] 部分来实现根据自定义页面的选择来判断是否复制文件夹中的所有文件到某个位置。

以下是一个示例代码,演示如何根据自定义页面的选择来复制文件夹中的所有文件到指定位置:

[Code]
var
  CustomPage: TInputOptionWizardPage;

procedure InitializeWizard;
begin
  // 创建自定义页面
  CustomPage := CreateInputOptionPage(wpSelectDir, '选择文件夹', '请选择要复制文件的文件夹', '请选择要复制文件的文件夹:', False, False);
  CustomPage.Add('文件夹路径1');
  CustomPage.Add('文件夹路径2');
  CustomPage.Add('文件夹路径3');
  CustomPage.Values[0] := 'True'; // 默认选择第一个选项
  CustomPage.Values[1] := 'False';
  CustomPage.Values[2] := 'False';
  CustomPage.Values[3] := 'False';
  CustomPage.Values[4] := 'False';
  CustomPage.Values[5] := 'False';
  CustomPage.Values[6] := 'False';
  CustomPage.Values[7] := 'False';
  CustomPage.Values[8] := 'False';
  CustomPage.Values[9] := 'False';
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  SourceDir: string;
  TargetDir: string;
begin
  Result := True;

  // 判断是否在自定义页面
  if CurPageID = CustomPage.ID then 
  begin
    // 获取用户选择
    if CustomPage.Values[0] = 'True' then
    begin
      SourceDir := 'C:\Folder1'; // 第一个选项对应的文件夹路径
      TargetDir := 'C:\Destination'; // 复制到的目标位置
    end
    else if CustomPage.Values[1] = 'True' then
    begin
      SourceDir := 'C:\Folder2'; // 第二个选项对应的文件夹路径
      TargetDir := 'C:\Destination';
    end
    else if CustomPage.Values[2] = 'True' then
    begin
      SourceDir := 'C:\Folder3'; // 第三个选项对应的文件夹路径
      TargetDir := 'C:\Destination';
    end
    else
    begin
      SourceDir := ''; // 其他选项则不复制文件夹中的文件
      TargetDir := '';
    end;

    // 复制文件夹中的文件到指定位置
    if (SourceDir <> '') and (TargetDir <> '') then
    begin
      if DirExists(SourceDir) then
        if not FileCopy(SourceDir + '\*', TargetDir, True) then
          MsgBox('文件复制失败!', mbError, MB_OK);
    end;
  end;
end;

请根据您的实际需求修改相应的文件夹路径和目标位置。在这个示例中,我们创建了一个自定义页面,用户可以选择要复制文件的文件夹。根据用户的选择,我们使用 FileCopy 函数将文件夹中的所有文件复制到指定位置。如果复制失败,将显示一个错误消息框。

请注意,这只是一个简单的示例,您可能需要根据自己的需求进行更多的自定义和错误处理


原文地址: https://www.cveoy.top/t/topic/hXBd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录