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

  • Автор темы Автор темы ExPlayer
  • Дата начала Дата начала

ExPlayer

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

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

-
UPD. всем спасибо. Всё работает :dance::good:
 
Последнее редактирование:
как это использовать
действительно, :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
Назад
Сверху