Переименование / резервное копирование файла на случайное имя в Inno Setup - PullRequest
1 голос
/ 12 марта 2019

Я знаю, что могу переименовать любой файл с помощью:

function RenameFile(const OldName, NewName: string): Boolean;

У меня уже есть это:

RenameFile(ExpandConstant('{app}\myfile.dll'), ExpandConstant('{app}\Myfile.dll.old'));

, которым я могу переименовать свой файл на любое желаемое имя, но в этомВ случае, если мне нужно переименовать его случайным образом сгенерированным именем, я попытался использовать: ExpandConstant('{app}\Myfile.dll.{tmp}'));, чтобы получить случайное имя, сгенерированное {tmp}, но это не сработало.

Есть ли идеи, как это сделать?работа

1 Ответ

1 голос
/ 13 марта 2019

Вы можете использовать Random function :

ExpandConstant('{app}\Myfile.dll.' + IntToStr(Random(1000)))

Хотя это не мешает вам генерировать уже существующее имя.Вы должны хотя бы проверить, существует ли генерируемое имя.И если это так, попробуйте новое случайное имя.Но тогда нет смысла использовать случайное имя.Вместо этого вы можете использовать инкрементные числа, так как они имеют лучшую семантику.

См. Как найти уникальное имя для переименования / архивирования старых каталогов в Inno Setup .

...