Thema: Delphi Problem beim webupdate

Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem beim webupdate

  Alt 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
  Mit Zitat antworten Zitat