Вопрос Как сделать резервную копию заменяемых файлов (бэкап)?

ExPlayer

Старожил
Доброго времени суток! Собственно интересует, как можно сделать резервную копию заменяемых файлов (как пример, любой из инсталляторов ZoG). Т.е. там можно поставить галочку, делать резервную копию или нет. Вот хотелось бы узнать, как это можно сделать (по форуму искал, но что-то не нашел похожего вопроса)?
 

Adil

Старожил
ExPlayer, я знаю только такое
Код:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallFilesDir={app}\Mod Uninstall

[Code]
procedure CopyFiles(FromPlace, ToPlace: String);
var
    ResultCode: Integer;
begin
    Exec('xcopy.exe', '/E /C /H /R /Y /F /I ' + AddQuotes(FromPlace) + ' ' + AddQuotes(ToPlace), ExpandConstant('{app}'), SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep = ssInstall) then
begin
    WizardForm.ProgressGauge.Hide;
    WizardForm.StatusLabel.Caption:='Создание резервных копий файлов...';
    CopyFiles(ExpandConstant('{app}') + '\Profiles\V\Achievements\Achievements.txt', ExpandConstant('{app}') + '\BackupDir\Profiles\V\Achievements\');
    WizardForm.ProgressGauge.Show;
    WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
  end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then
  begin
    CopyFiles(ExpandConstant('{app}') + '\BackupDir\Profiles\V\Achievements\Achievements.txt', ExpandConstant('{app}') + '\Profiles\V\Achievements\');
    DelTree(ExpandConstant('{app}\BackupDir'), True, True, True);
  end;
end;
 

ExPlayer

Старожил
Спасибо, люди добрые :dance:

Убедительная просьба: темку пока не закрывайте (вдруг вопросы возникнут :) )

-
UPD. всем спасибо. Всё работает :dance::good:
 
Последнее редактирование:

sergey3695

Ветеран
Модератор
как это использовать
действительно, :pardon:
Код:
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
    CreateBackup(ExpandConstant('{app}'), ExpandConstant('{app}\Backup'), 'move:file1.dat, copy:file2.dat, copy:data\lang*.*');
end;

procedure CuruninstallStepChanged(CurStep: TUninstallStep);
begin
  if CurStep = usUninstall then
    RestoreBackup(ExpandConstant('{app}\Backup'), ExpandConstant('{app}'));
end;
 
  • Like
Реакции: Adil
Сверху