InnoSetup: проблема с функцией проверки файлов - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь создать мастер установки с программным обеспечением InnoSetup для легкого развертывания моей программы, но в настоящее время я сталкиваюсь с проблемой с моим сценарием.
Я привык делать мастер установки basi c, но теперь мне нужно реализовать новый функциональность которых:
Я хочу проверить, существует ли файл на компьютере, чтобы не перезаписывать его.
Я сделал так (в разделе [files]) :

[Files]
Source: "{#MyAppExeFile}"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#MyAppSrcFolder}*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{#MyAppSrcFolder}FileFolder\testFile.py"; DestDir: "D:\Users\{username}\myFolderTest\"; Flags: ignoreversion recursesubdirs createallsubdirs;Check: needInstallFile(ExpandConstant('{username}'))

И я добавил следующий раздел [code]:

[code]
function needInstallFile(user : string) : Boolean;
begin
  if IsTaskSelected('initFile') then begin
    if FileExists('D:\Users\' + user + '\myFolderTest\testFile.py') then begin  
      MsgBox('The file already exist', mbInformation, MB_OK);
      Result:=False;
      exit;
    end else begin
      Result:=True;
      exit;
    end;
   end;
end;

Когда я компилирую свой код, он работает, но если файл уже существует, у меня появляется три всплывающих окна (а не только тот, который я хотел бы иметь). Я не понимаю, несмотря на мои исследования по Inte rnet.

Если у вас есть подсказка, чтобы помочь мне, мне интересно, потому что я застрял.

Заранее спасибо за Ваша помощь.
PS: Извините за мой английский sh, к сожалению, я французский парень.

Томас

...