MudGuard: Kopieren von Dateien nur dann, wenn sie unterschiedlich sind?

Beitrag lesen

Hi,

wie kann ich dieser rekursiven Kopierfunktion beibringen, nur dann eine Datei oder eine Verzeichnis zu kopieren bzw. zu überschreiben, wenn die Datei nicht bereits völlig identisch ist?

Versprichst Du Dir davon viel?

Ist eine Überprüfung über einen Hash-Wert möglich/sinnvoll oder über Dateiattribute besser?

Wie erhältst Du die beiden Hashwerte? Indem Du beide Dateien liest.
Wenn die Hashwerte nicht übereinstimmen, muß die Quelldatei nochmal gelesen und die Zieldatei geschrieben werden.

Nichts gewonnen, aber 2mal Dateilesen + 2mal Hashberechnen verloren.

Wenn die Hashwerte übereinstimmen, hast Du zweimal Dateilesen und zweimal Hashberechnen verloren.

Ob sich der Aufwand lohnt, ist fraglich.

Bei unterschiedlichen Dateigrößen kann man natürlich das Lesen und Hashberechnen weglassen und direkt kopieren.
Bei gleicher Dateigröße muß das aber doch geschehen, da ja eine Änderung des Inhalts nicht unbedingt eine Größenänderung bewirkt.

Je nach Umgebung könnte man auch noch die Zeitstempel der Dateien berücksichtigen - aber das hängt natürlich davon ab, ob die Zeitstempel der Zieldateien nur durch die Kopieraktionen verändert werden oder nicht - wenn das der Fall ist: kopieren, wenn Quelldatei neuer als Zieldatei ist. Sonst: Hashberechnen ...

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.