[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;
должно быть такКопирование файлов
Перевод справки NSIS => CopyFiles
Создание директории
Перевод справки NSIS => CreateDirectory
Переименование/перемещение файлов
Перевод справки NSIS => Rename
Удаление директории
Перевод справки NSIS => RMDir
Rename $EXEDIR\App\IFX $LOCALAPPDATA
Rename $EXEDIR\App\Set\IFX $APPDATA
Ну это как бы переименование, а не перемещение.Rename
В NSIS аналог этой функции будет выглядеть примерно так.Хамик, если вы имели в виду бэкап файлов:
Код:[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;
//Перемещение
!macro BackupFile FILE_DIR FILE BACKUP_TO
IfFileExists "${BACKUP_TO}\*.*" +2
CreateDirectory "${BACKUP_TO}"
IfFileExists "${FILE_DIR}\${FILE}" 0 +2
Rename "${FILE_DIR}\${FILE}" "${BACKUP_TO}\${FILE}"
!macroend
//Восстановление
!macro RestoreFile BUP_DIR FILE RESTORE_TO
IfFileExists "${BUP_DIR}\${FILE}" 0 +2
Rename "${BUP_DIR}\${FILE}" "${RESTORE_TO}\${FILE}"
!macroend
//Пример для секции установки
!insertmacro BackupFile "$INSTDIR\Data\Win32\loctext" "en.toc" "$INSTDIR\Backup"
//Пример для секции удаления
!insertmacro RestoreFile "$INSTDIR\Backup" "en.toc" "$INSTDIR\Data\Win32\loctext"