目的
安装包在安装过程中可能因为环境或者其他特殊原因安装失败了,但是不能影响以前安装的旧版本,所以就需要建立回滚机制,当安装失败的时候自动复原到以前的版本
实现步骤
- 在安装之前,拷贝安装目录下的文件到缓存目录,或者移动安装目录下的文件到缓存目录
- 安装完成之后判断,是否安装成功
- 如果安装成功
- 删除缓存目录
- 如果安装失败
- 把安装目录下的文件删除,从缓存目录拷贝文件到安装目录下
- 删除缓存目录
代码
定义全局变量
var
isInstallSuccess:boolean; //用于判断是否安装成功
tmpDir:String; //缓存文件目录
移动目录
首先封装一个移动文件夹的函数
procedure DirectoryMove(SourcePath, DestPath: string);
var
FindRec: TFindRec;
SourceFilePath: string;
DestFilePath: string;
begin
if FindFirst(SourcePath + '\*', FindRec) then
begin
try
repeat
if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
begin
SourceFilePath := Sourc