files()->in($baseDir); $files = $this->scan_dir($baseDir); $firstTime = true; $counter = 0; $dirCounter = 0; $dirName = ""; foreach ($files as $file) { if ($firstTime) { $dirName = $baseDir . "/" . date("Y-m-d", filectime($baseDir . "/" . $file)) . "-$dirCounter"; if (!is_dir($dirName)) { mkdir($dirName); } $dirCounter++; $firstTime = false; } rename($baseDir . "/" . $file, $dirName . "/" . $file); $counter++; if ($counter % 1000 == 0) { $firstTime = true; } // exit; } } private function scan_dir($dir) { $ignored = array(".", "..", ".svn", ".htaccess",".DS_Store"); $files = array(); foreach (scandir($dir) as $file) { if (in_array($file, $ignored)) continue; $files[$file] = filemtime($dir . '/' . $file); } asort($files); $files = array_keys($files); return ($files) ? $files : false; } }