• User

    Copiare cartella, files e sottocartelle senza sovrascrivere

    Ciao,

    ho questo script per copiare una cartella con relativi files e sottocartelle da un server a un altro.

    E' è possibile fare in modo che non sovrascriva sempre tutto, ma semplicemente salti i files (non le cartelle) con lo stesso nome??

    Grazie!!

    function full_copy( $source, $destination)
    {
    if ( is_dir( $source ) ) {
    @mkdir( $destination );
    $d = dir( $source );
    while ( FALSE !== ( $entry = $d->read() ) ){
    if ( $entry == '.' || $entry == '..' ){
    continue;
    }
    $Entry = $source . '/' . $entry;
    if ( is_dir( $Entry )){
    full_copy( $Entry, $destination . '/' . $entry );
    continue;
    }
    copy( $Entry, $destination . '/' . $entry );
    }
    $d->close();
    }else{
    copy( $source, $destination );
    }
    }


  • User

    Prima di copiare il file, puoi controllare con file_exists() se il file esiste nella cartella di destinazione.


  • User

    ecco fatto, spero che vada!

    function full_copy($source, $destination) {
    if (is_dir($source)) {
    @mkdir($destination);
    $d = dir($source);
    while(FALSE !== ($entry = $d->read())) {
    if ($entry == '.' || $entry == '..') {
    continue;
    }
    $Entry = $source . '/' . $entry;
    if (is_dir($Entry)) {
    full_copy($Entry, $destination . '/' . $entry);
    continue;
    }
    if (!file_exists($destination . "/" . $entry)) {
    copy($Entry, $destination . '/' . $entry);
    }
    }
    $d->close();
    } else {
    if (!file_exists($destination)) {
    copy($source, $destination);
    }
    }
    }