How to find an unique name to rename/archive old d

2019-04-15 22:47发布

问题:

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;