You are here

function _image_import_recursive_delete_empty_directories in Image 6

Same name and namespace in other branches
  1. 7 contrib/image_import/image_import.pages.inc \_image_import_recursive_delete_empty_directories()

Delete recursively all directories inside $basepath.

Parameters

$basepath: The base directory where to find empty directories.

$dir: A directory inside $basepath, used for recursive purpose. Should not be used when calling this method.

Return value

An array of the deleted directories paths, relative to $basepath.

1 call to _image_import_recursive_delete_empty_directories()
_image_import_recursive_delete_empty_directories_batch_op in contrib/image_import/image_import.pages.inc
Batch operation callback for deletion of empty directories after the import.

File

contrib/image_import/image_import.pages.inc, line 377

Code

function _image_import_recursive_delete_empty_directories($basepath, $dir = '') {
  $deleted = array();

  // Append $basepath to $dir only if $dir is not empty (to avoid trailing
  // slash).
  if ($dir != '') {
    $crnt_dir = $basepath . '/' . $dir;
  }
  else {
    $crnt_dir = $basepath;
  }

  // Get each file in $crnt_dir.
  $ls = file_scan_directory($crnt_dir, '.*', array(
    '.',
    '..',
    'CVS',
  ), 0, FALSE);

  // For each directory inside, recursively delete empty directories inside.
  foreach ($ls as $file) {
    if (is_dir($file->filename)) {
      $next_dir = $dir ? $dir . '/' . $file->basename : $file->basename;
      $deleted = array_merge($deleted, _image_import_recursive_delete_empty_directories($basepath, $next_dir));
      if (sizeof(file_scan_directory($file->filename, '.*', array(
        '.',
        '..',
      ), 0, FALSE)) == 0) {
        rmdir($file->filename);
        $deleted[] = '<em>' . $next_dir . '</em>';
      }
    }
  }
  return $deleted;
}