如何在 Inno Setup 中找到 rename/archive 个旧目录的唯一名称

How to find an unique name to rename/archive old directories in Inno Setup

每当我进行新安装时,我都会安装一个新目录。我在安装旧目录时遇到问题,现在想存档我的旧目录。

如果 DirExists returns 为真,我想将目录从 Directory 重命名为 DirectoryOld1.

我遇到的问题是如何检查和迭代重命名过程,以便如果 DirectoryOld1 存在,将当前目录重命名为 DirectoryOld2 等等。

如果我对你的问题的理解正确,你想将现有目录备份到一个唯一的(递增的)名称。对吗?

这样做:

function BackupDir(OldName: string): Boolean;
var
  I: Integer;
begin
  I := 1;
  { Find a unique index }
  while DirExists(OldName + IntToStr(I)) do
  begin
    Inc(I);
  end;

  { And rename }
  Result := RenameFile(OldName, OldName + IntToStr(I)); 
end;