Ответов: 3 Просмотров: 50
|
Всем привет.
Задача - периодическая репликация папок, т.е. копирование только измененного или нового содержимого. Есть рабочий php скрипт:
CODE ( htmlphp):
скопировать код в буфер обмена
<?php function dircpy($source, $dest, $overwrite = false){ while(false !== ($file = readdir($handle))){ if($file != '.' && $file != '..'){ $path = $source . '/' . $file; if(!is_file($dest . '/' . $file) || $overwrite) if(!@copy($path, $dest . '/' . $file)){ echo '<font color="red">File ('.$path.') could not be copied, likely a permissions
problem.</font>'; } if(!is_dir($dest . '/' . $file)) mkdir($dest . '/' . $file); // make subdirectory before subdirectory is copied dircpy($path, $dest . '/' . $file, $overwrite); //recurse! } } } } } $zz="D:\JAVA\-from" ; $zx="L:\-to" ; dircpy($zz, $zx, $overwrite = false); ?>
проблема в том, что при вызове функции с параметром
$overwrite = false - во время копирования игнорируются измененные файлы с тем же именем, а при
$overwrite = true - то копируется с перезаписью тотально всё содержимое, в том числе уже имеющееся в целевой папке; папка огромна и длительный проход колоссального ненужного трафика - неприемлем.
Спасибо. |