function _image_import_recursive_delete_empty_directories in Image 6
Same name and namespace in other branches
- 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;
}