Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
Turbo Delphi für Win32
|
Problem beim webupdate
7. Dez 2002, 20:08
Hi,
ich habe gerade angefangen eine Prozedur für ein Webupdate zu schreiben. Alles läuft, allerdings lädt er nicht die Dateien runter, obwohl sie vorhanden und im richtigen Verzeichnis liegen...
Folgender Source:
Delphi-Quellcode:
procedure TForm1.lookForUpdate1Click(Sender: TObject);
var
updateFile: TIniFile;
aktVer, newVer: String;
VersionFile: TextFile;
FileCount: integer;
FileList: TStringlist;
offFileList: TStringList;
i: integer;
MainFile: String;
begin
if FileExists(ExtractFilePath(Application.ExeName)+'update\updateload.inf') then
DeleteFile(ExtractFilePath(Application.ExeName)+'update\updateload.inf');
try
URLDownloadToFile(nil, 'http://www.chris-harms.de/sites/projects/updates/CodeLib.inf', PChar(ExtractFilePath(Application.ExeName)+'update\updateload.inf'), 0, nil);
except
MessageDlg('Fehler beim downloaden der Update-Informationsdatei!'+#13+#10+'Download wird abgebrochen!', mtError, [mbOK], 0);
exit;
end;
// load current version
AssignFile(VersionFile, ExtractFilePath(Application.ExeName)+'version.clf');
Reset(VersionFile);
readln(versionFile, aktVer);
CloseFile(VersionFile);
// load updated version
updateFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'update\updateload.inf');
try
newVer := updateFile.ReadString('update', 'newVersion', aktVer);
finally
updateFile.Free;
end;
// check version-difference
if aktVer = newVer then begin
MessageDlg('Es ist keine neuere Version vorhanden!', mtInformation, [mbOK], 0);
Exit;
end;
try
updateFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'updates\updateload.inf');
FileList := TStringList.Create;
offFileList := TStringList.Create;
try
FileCount := updateFile.ReadInteger('files', 'count', 0);
FileList.Sorted := true;
MainFile := updateFile.ReadString('files', 'mainfile', '');
for i:=1 to FileCount do begin
FileList.Add(updateFile.ReadString('file'+IntToStr(i), 'filename', ''));
end;
for i:=0 to FileList.Count - 1 do begin
// ForceDirectories(ExtractFilePath(Application.exeName)+'updates\'+newVer+'\');
URLDownloadToFile(nil, PChar('http://www.chris-harms.de/sites/projects/updates/'+newVer+'/'+FileList[i]), PChar(ExtractFilePath(Application.exeName)+'update\'+FileList[i]), 0, nil);
offFileList.Add(ExtractFilePath(Application.exeName)+'update\'+FileList[i]);
end;
finally
updateFile.Free;
FileList.Free;
end;
except
MessageDlg('Fehler beim updaten der Dateien!'+#13+#10+'Update wird abgebrochen!', mtError, [mbOK], 0);
exit;
end;
if MessageDlg('Es wurde eine aktuelle Version ('+newVer+') heruntergeladen.'+#13+#10+'Soll diese jetzt installiert werden?', mtWarning, [mbYes,mbNo], 0) = mrNo then begin
DoFileWork(self.Handle, FO_DELETE, offFileList, nil, FOF_NOERRORUI);
Exit;
end;
ShellExecute(0, 'open', PChar(ExtractFilePath(Application.exeName)+'update\'+MainFile), nil, nil, SW_SHOWNORMAL);
offFileList.Free;
Close;
end;
Hoffe auf schnelle Hilfe,
Chris
|