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

▼魔方 西西 提交于 2019-12-06 13:30:32

问题


Whenever I do a new install, I install a new directory. I am having issues with installing over old directories and would now like to archive my old directories.

If DirExists returns true, I want to rename the directory from Directory to DirectoryOld1.

The issue I am having is how to check and iterate through the renaming process, so that if DirectoryOld1 exists, rename the current directory to DirectoryOld2 and so on.


回答1:


If I understand your question correctly, you want to backup an existing directory to a unique (incremented) name. Right?

This will do:

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;


来源:https://stackoverflow.com/questions/35900787/how-to-find-an-unique-name-to-rename-archive-old-directories-in-inno-setup

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!