Create $dir
directory if it doesn't exist. If it contains more than $max
files create $dir.part$level
. Return last created directory name.
function partitionDir($dir, $max = 4444, $level = 1) {
$basedir = $dir;
$dir = ($level === 1) ? $dir : $dir . '.part' . $level;
if (!file_exists($dir)) {
mkdir($dir, 0777, true);
} else {
$files = scandir($dir); // array of files in dir (with . and ..)
if ((count($files) - 1) > $max) {
$dir = partitionDir($basedir, $max, $level + 1);
}
}
return $dir;
}