Jörg: Kopieren von Dateien nur dann, wenn sie unterschiedlich sind?

Beitrag lesen

Hallo,

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?

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

Wer hat hier einen guten Ansatz für mich?

Hintergrund ist, dass ich viele Verzeichnisse/Ordner habe und diese per Schleife auf einige Verzeichnisse clonen möchte, aber ein bißchen Sorge habe, in den Script-timeout des Hosters zu geraten.

Grüße, Jörg

und hier die Funktion

  
function copyFolder($source, $dest, &$statsCopyFolder, $recursive = TRUE)  
{  
  
	if (!is_dir($dest))  
	{  
        mkdir($dest);  
  }  
  
	$handle = @opendir($source);  
	  
	if(!$handle)  
		return false;  
	  
	while ($file = @readdir ($handle))  
	{  
		if (eregi("^\.{1,2}$",$file))  
		{  
			continue;  
		}  
		  
		if(!$recursive && $source != $source.$file."/")  
		{  
			if(is_dir($source.$file))  
				continue;  
		}  
		  
		if(is_dir($source.$file))  
		{  
			copyFolder($source.$file."/", $dest.$file."/", $statsCopyFolder, $recursive);  
			  
		}  
		else  
		{  
			copy($source.$file, $dest.$file);  
			$statsCopyFolder['files']++;  
			$statsCopyFolder['bytes'] += filesize($source.$file);  
		}  
	}  
  
	@closedir($handle);  
	  
}