Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#2

Re: [Patcher] Dateien vergleich / ersetzten / downloaden

  Alt 23. Mai 2010, 14:00
Wenn du nur MD5 brauchst, gibt es hier z.B. eine md5.pas, die du verwenden kannst und mit
Md5Print(Md5File(filename)); den (string) MD5-Hash einer Datei ermitteln kannst.
Ansonsten rate ich dir zum DEC, falls du noch mehrere Kryptografie-Algos brauchst.

Beim Ausliefern kannst du z.B. den Hash jeder Datei im Ordner in einer XML-Datei mitliefern, die z.B. in etwa so aufgebaut ist:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<HashFileList UID="{9AD5B6AB-6E4F-433B-AE57-D223D881AE5A}">
  <File>
    <Index>1</Index>
    <Hash>967905c64686d06d3bfebcc6cad32de6</Hash>
    <FileName>Projekt1.exe</FileName>      
  </File>
  <File>
    <Index>2</Index>
    <Hash>ff20037820420000746503382e20686f</Hash>
    <FileName>Data\daten.dat</FileName>      
  </File>
...
..
.
</HashFileList>
Beim Update-Request sendest du diese Liste an ein Script auf dem Server (z.B. in php geschrieben), dieses
vergleicht die Liste mit der aktuellen Hash-Liste der Dateien, die auch auf dem Server liegt und ermittelt so die Dateien, die ausgetauscht werden müssen.
Diese lädst du runter, ersetzt diese Dateien und ersetzt danach ebenso die aktuelle Hash-Liste mit der auf dem Server.
Wenn du es so machst, ersparst du es dem Client, jedesmal den kompletten Ordner hashen zu müssen, was bei 1GB doch einige Zeit dauern kann.
Mit der oben genannten Methode musst du nur immer die Dateien bei dir neu hashen, bevor du das Update auf den Server lädst.

grüssle,

Fin
  Mit Zitat antworten Zitat