用户确认卸载时如何保存文件夹? (Inno设置)

时间:2017-03-09 00:21:52

标签: backup inno-setup uninstall

当用户确认应用程序卸载时,如何将特定文件夹的备份副本保存到用户桌面?

我尝试了这个没有成功......也许有一种更简单的方法可以不使用代码...

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then
  begin
    FileCopy('{app}\Profile\*', '{userdesktop}\Backup\Profile\', False);
  end;
end;

谢谢你们! :)

1 个答案:

答案 0 :(得分:1)

CurUninstallStepChanged(usUninstall)上触发备份是最佳解决方案。

你遇到的问题是:

使用DirectoryCopy用户功能(来自上面提到的问题),你可以这样做:

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
  SourcePath: string;
  DestPath: string;
begin
  if CurUninstallStep = usUninstall then
  begin
    SourcePath := ExpandConstant('{app}\Profile');
    DestPath := ExpandConstant('{userdesktop}\Backup\Profile');
    Log(Format('Backing up %s to %s before uninstallation', [SourcePath, DestPath]));
    if not ForceDirectories(DestPath) then
    begin
      Log(Format('Failed to create %s', [DestPath]));
    end
      else
    begin
      DirectoryCopy(SourcePath, DestPath);
    end;
  end;
end;