请考虑以下事项:
我有两个文件,例如XXX.txt
和YYY.txt
我想将它们安装到一个文件夹(比方说files
),其中已有XXX.txt
和YYY.txt
个文件
我想“备份”两个原始文件,将其重命名为XXX.txt.backup
和YYY.txt.backup
在卸载时,我想将两个文件恢复到原始状态
如何通过Inno Setup实现这一目标?
答案 0 :(得分:12)
添加
[Files]
; Backup Function_Template
Source: "{app}\XXX.txt"; DestDir: "{app}"; DestName: "XXX.txt.bkup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
这将移动现有文件,并且标志将阻止卸载它。现在在代码中你可以放
[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;
答案 1 :(得分:0)
Source: "{app}\XXX.txt"; DestDir: "{app}"; DestName: "XXX.txt.bkup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
似乎没有用,因为“如果你没有指定一个完全限定的路径名,编译器会预先安装你的安装源目录的路径。”
然而,我刚刚发现这个工作正常!我没有留下“外部”旗帜。
答案 2 :(得分:-1)
好吧,也许是一个弹出窗口说“已经有一个XXX.txt.backup。你真的想覆盖它吗?”