procedure TForm1.Button1Click(Sender: TObject);
var
Ini: TIniFile;
NewVersion,Newfiles,Version :string ;
NewFile :array[0..3] of string;
i:integer;
begin
//=============== get oldVersion begin =========
Ini :=TInifile.Create(ExtractFilePath(Paramstr(0))+'update.ini'); //必须那么写。不然不成功失败的郁闷
try
idFTPSun.Host:=Ini.ReadString( 'data', 'host', '127.0.0.1' );
idFTPSun.Username:=Ini.ReadString( 'data', 'Username', 'anonymous' );
idFTPSun.Password:=Ini.ReadString( 'data', 'Password', '' );
Newfiles := Ini.ReadString( 'data', 'file','222' );
finally
Ini.Free;
end;
//==================== get new Version end ==================
try
idFTPSun.Connect(true,10000);
except
showmessage('连接主机失败!检查网络');
ShellExecute(handle,'open',Pchar(NewFiles),nil,nil, SW_SHOWNORMAL);
end;
idFTPSun.ChangeDir('/update');
idFTPSun.Get('update.ini','temp.ini',true,false);
pb.Position:=10;//进度控制
//==================== ger new Version begin=====================
//Ini := TIniFile.Create( 'E:\002.个人文件\ftp自动更新程序\update21.ini' );//必须那么写。不然不成功失败的郁闷
Ini :=TInifile.Create(ExtractFilePath(Paramstr(0))+'temp.ini'); //必须那么写。不然不成功失败的郁闷
finally
Ini.Free;
deleteFile('temp.ini');
end;
//==================== get new Version end ==============
pb.Position:=pb.Position+10;//进度控制
//=============== get oldVersion begin =========
Ini :=TInifile.Create(ExtractFilePath(Paramstr(0))+'update.ini'); //必须那么写。不然不成功失败的郁闷
label1.Caption:=Ini.FileName;
try
Version := Ini.ReadString( 'data', 'Version', '123' );
finally
Ini.Free;
end;
//==================== get new Version end ==================
pb.Position:=pb.Position+10;//进度控制
//=================== compare the files and download begin=======================
if Version=NewVersion then
begin
showmessage('新版本号=>'+NewVersion+#13+Newfiles+#13+'旧版本号=>'+Version);
idFTPSun.Get(Newfiles,Newfiles,true,false);
for i:=0 to 3 do
begin
if length(NewFile[i])>1 then
idFTPSun.Get(NewFile[i],NewFile[i],true,false);
pb.Position:=pb.Position+5;
label1.Caption:= NewFile[i];
end;
label1.Caption:='新版本号=>'+NewVersion+#13+Newfiles+#13+'旧版本号=>'+Version+idFTPSun.RetrieveCurrentDir;
idFTPSun.Get('update.ini','update.ini',true,false);
label1.Caption:='更新成功,程序正常启动';
end
else
begin
label1.Caption:='更新成功,程序正常启动';
end;
//=================== compare the files download end=========
pb.Position:=pb.Position+10;//进度控制