isDir()) { @mkdir($destination.DS.$iterator->getSubPathName()); } else { copy($item, $destination.DS.$iterator->getSubPathName()); } } return true; } public static function deleteRecursive($source) { if (!self::directoryExists($source)) { return false; } foreach(new RecursiveIteratorIterator( new RecursiveDirectoryIterator($source, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST) as $item) { if($item->isFile()) { unlink($item); } else { rmdir($item); } } return rmdir($source); } }