Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

inno setup - Backup files and restore them on uninstall with InnoSetup?

Consider the following:

  • I have two files, for example XXX.txt and YYY.txt

  • I want to install them to a folder (let's say files), in which there are already XXX.txt and YYY.txt files

  • I want to "back up" the two original files, renaming them to XXX.txt.backup and YYY.txt.backup

  • On uninstall I want to restore the two files to their original state

How can I achieve this with Inno Setup?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Add

[Files]
; Backup Function_Template
Source: "{app}XXX.txt"; DestDir: "{app}"; DestName: "XXX.txt.bkup"; Flags: external skipifsourcedoesntexist uninsneveruninstall

That would move the existing file, and the flags will prevent from uninstalling it. Now in the code you can put

[Code] 
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
  OldFile: string;
begin
  case CurUninstallStep of    
    usPostUninstall:
      begin
        OldFile := ExpandConstant('{app}XXX.txt.bkup');
        if FileExists(OldFile) then
          RenameFile(OldFile, ExpandConstant('{app}XXX.txt'));
      end;
  end;
end;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...