moin,
sieht ja schon halbwegs sauber aus...aber:
Delphi-Quellcode:
type
TFileListEntry = record
fName: string[255];
fSize: Cardinal; // *1
fDate: TDateTime;
fTimeStamp: Cardinal;
fHash: string[32]; // *2
end;
1. Der Datentyp ist hier schlecht gewählt, da du bei sehr großen Dateien ab 4 GB Probleme bekommen wirst. (Cardinal -Bufferoverflow). Benutze deswegen den Datentyp "Int64". Mit diesem kann man theoretisch +/- 2^63-1 Werte darstellen, so dass sich auch Dateien von über 4 GB verwalten ließen.
2. Solltest du Hash-Verfahren ala MD5 (128 Bit), SHA1 (128 Bit) einsetzen, so sollten 16 Byte zum übertragen der Prüfsummen ausreichen. Die Kodierung kann man dann auf dem Client bzw. Server vornehmen.
3. Dateiattribute, Schreib- und Leserechte von Dateien fehlen in deiner Dateiliste, okay wären vielleicht auch nur optional..
4. Leg am besten keine Datei an, sondern arbeite direkt mit Streams, sofern deine Dateilisten nicht allzugroß sind, diese kann man ebenfalls noch mit einem schnellen Kompressionsalgo versehen