杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2090|回复: 0

如何备份文件和恢复备份的文件

[复制链接]
发表于 2017-3-6 16:06:46 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. [Setup]
  2. AppName=My Program
  3. AppVersion=1.5
  4. DefaultDirName={pf}\My Program
  5. DirExistsWarning=no

  6. [Files]
  7. ;安装新的文件,备份旧的文件
  8. Source: "myfile\*"; DestDir: "{app}"; Flags: recursesubdirs; BeforeInstall: MakeBackUp

  9. [Code]
  10. procedure MakeBackUp;
  11. var
  12.   dn, fn, rp, cp: string;
  13.   ResultCode: Integer;
  14. begin
  15.   dn:= ExpandConstant(ExtractFileDir(CurrentFileName));
  16.   fn:= ExtractFileName(CurrentFileName);
  17.   cp:= ExpandConstant('{app}');
  18.   rp:= dn;
  19.   if FileExists(dn + '\' + fn) then
  20.     begin
  21.       if not DirExists(cp + '\backup') then
  22.         CreateDir(cp + '\backup');
  23.       if pos(cp, dn) = 1 then
  24.         delete(rp, 1, length(cp));
  25.       if not DirExists(cp + '\backup' + rp) then
  26.         Exec(ExpandConstant('{cmd}'), '/c mkdir "' + cp + '\backup' + rp + '"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  27.       FileCopy(dn + '\' + fn, cp + '\backup' + rp + '\' + fn, false);
  28.     end;
  29. end;

  30. procedure CurUninstallStepChanged (CurUninstallStep: TUninstallStep);    //卸载成功后看情况恢复备份的文件
  31. var
  32.   ResultCode: Integer;
  33. begin
  34. if CurUninstallStep = usDone then
  35.   begin
  36.     if Exec('xcopy.exe', ExpandConstant('"{app}\backup\*.*" "{app}" /S /Y /H'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
  37.       DelTree(ExpandConstant('{app}\backup'), True, True, True);
  38.   end;
  39. end;
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-19 17:52 , Processed in 0.111564 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表