Как проверить, существует ли файл и попросить перезаписать в коде Pascal Script - PullRequest
2 голосов
/ 29 марта 2019
function CreateLICStopServiceBatch(): boolean;
  begin
    Result := true;
    fileName := ExpandConstant('{code:GetBasicDirectoryValue}\{code:GetInstance}\_Service\Stop_LIC_Service.bat');
    SetArrayLength(lines, 3);
    lines[0] := ExpandConstant('set wrapdir={code:GetBasicDirectoryValue}\{code:GetInstance}\_Service');
    lines[1] := 'cd /d %wrapdir%';
    lines[2] := ExpandConstant('commons-daemon\prunsrv.exe //SS//{code:GetLSDVBServiceNameTEdit}');
    Result := SaveStringsToFile(filename,lines,false);
    exit;
  end;

CreateLICStopServiceBatch();

Прямо сейчас я просто записываю файл в каталог, независимо от того, существует файл или нет. Но я хочу проверить, существует ли файл (FileExists), а также иметь возможность выбрать (в диалоговом окне) перезаписать или взять старый файл, который уже существует.

1 Ответ

1 голос
/ 29 марта 2019
function CreateLICStopServiceBatch(): boolean;
var
  FileName: string;
  Lines: TArrayOfString;
begin
  FileName := GetBasicDirectoryValue + '\' + GetInstance + '\_Service\Stop_LIC_Service.bat';
  SetArrayLength(Lines, 3);
  Lines[0] := 'set wrapdir=' + GetBasicDirectoryValue + '\' + GetInstance + '\_Service';
  Lines[1] := 'cd /d %wrapdir%';
  Lines[2] := 'commons-daemon\prunsrv.exe //SS//' + GetLSDVBServiceNameTEdit;

  if (not FileExists(FileName)) or
     (MsgBox('Overwrite?', mbConfirmation, MB_YESNO) = idYes) then
  begin
    Result := SaveStringsToFile(FileName, Lines, False);
  end
    else
  begin
    { Not sure what you want to return when user does not confirm overwrite }
    Result := False;
  end;
end;
...