Pagina 1 din 1

Mutare fisiere mai vechi de 30 de zile in alt folder

Scris: Joi Noi 28, 2013
de julian
Colectez în fiecare zi fisiere într-un anumit foder. Vreau să am în folderul de colectare doar fisierele adunate din ultimele 30 de zile, pe cele mai vechi de 30 de zile nu vreau să le şterg de pe server, doar să le mut într-un alt folder.

Am găsit un script care ştergea fisierele mai vechi, eu am încercat să îl modific şi să îl fac să le mute. Ceva nu merge bine, nici nu le şterge pe cele vechi, nici nu le copiază în altă parte:

Cod: Selectaţi tot

<?php
$noi = '/proaspete/';
$vechi = '/arhiva/';
if (is_dir($noi)) {
   if ($dh = opendir($noi)) {
      while ($file = readdir($dh)) {
         if(!is_dir($noi.$file)) {
            if (filemtime($noi.$file) < strtotime('-30 days')) { 
			   copy($noi, $vechi) or die("Nu pot copia din $noi in $vechi.");
                           } 
			if (copy($noi, $vechi)){
				unlink($noi.$file);
				}

         }
      }
   }
} 
?>
Deşi am setat permisiunile directorului "arhiva" la 777, nu am nimic în el, este gol iar fişierele vechi sunt neatinse. Iar asta fără să apară vre-un mesaj de eroare...

Mutare fisiere mai vechi de 30 de zile in alt folder

Scris: Joi Noi 28, 2013
de MarPlo
Salut
Lipseste numele fiserului ($file) in copy(), plus repetarea functiei pt. unlink().
Daca fisiercul php e in acelasi director /root unde sunt si celelalte doua pt copiere /mutare, nu trebuie "/" la inceputul numelui directoarelor.
Incearca varianta asta:

Cod: Selectaţi tot

$noi = 'proaspete/';
$vechi = 'arhiva/';
if (is_dir($noi)) {
   if ($dh = opendir($noi)) {
      while ($file = readdir($dh)) {
       if(!is_dir($noi.$file)) {
        if (filemtime($noi.$file) < strtotime('-30 days')) {
          if(copy($noi.$file, $vechi.$file)) unlink($noi.$file);
          else exit("Nu pot copia din $noi in $vechi.");
       }
     }
    }
  }
}
 

Mutare fisiere mai vechi de 30 de zile in alt folder

Scris: Vin Noi 29, 2013
de julian
Am înţeles şi îţi mulţumesc pentru ajutor, acum scriptul merge. Îl bag in cronjobs şi am mai scăpat de o grijă :)
Tu ar trebui să trăişti veşnic! Lumea are tot timpul nevoie de tine.