adambuczek
11/22/2017 - 3:58 PM

Create `$dir` directory if it doesn't exist. If it contains more than `$max` files create `$dir.part$level`. Return last created directory n

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;
  }