mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00
MDL-12725 remove_dir() does not return correct status and fails if dir does not exist + improved sanity test in check_dir_exists(); merged from MOODLE_19_STABLE
This commit is contained in:
parent
ba7d966bae
commit
4ef8e74c53
1 changed files with 16 additions and 8 deletions
|
@ -7491,25 +7491,33 @@ function apd_get_profiling() {
|
|||
return shell_exec('pprofp -u ' . ini_get('apd.dumpdir') . '/pprof.' . getmypid() . '.*');
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete directory or only it's content
|
||||
* @param string $dir directory path
|
||||
* @param bool $content_only
|
||||
* @return bool success, true also if dir does not exist
|
||||
*/
|
||||
function remove_dir($dir, $content_only=false) {
|
||||
// if content_only=true then delete all but
|
||||
// the directory itself
|
||||
|
||||
if (!file_exists($dir)) {
|
||||
// nothing to do
|
||||
return true;
|
||||
}
|
||||
$handle = opendir($dir);
|
||||
$result = true;
|
||||
while (false!==($item = readdir($handle))) {
|
||||
if($item != '.' && $item != '..') {
|
||||
if(is_dir($dir.'/'.$item)) {
|
||||
remove_dir($dir.'/'.$item);
|
||||
$result = remove_dir($dir.'/'.$item) && $result;
|
||||
}else{
|
||||
unlink($dir.'/'.$item);
|
||||
$result = unlink($dir.'/'.$item) && $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
if ($content_only) {
|
||||
return true;
|
||||
return $result;
|
||||
}
|
||||
return rmdir($dir);
|
||||
return rmdir($dir); // if anything left the result will be false, noo need for && $result
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7525,7 +7533,7 @@ function check_dir_exists($dir, $create=false, $recursive=false) {
|
|||
|
||||
global $CFG;
|
||||
|
||||
if (strstr($dir, $CFG->dataroot) === false) {
|
||||
if (strstr($dir, $CFG->dataroot.'/') === false) {
|
||||
debugging('Warning. Wrong call to check_dir_exists(). $dir must be an absolute path under $CFG->dataroot ("' . $dir . '" is incorrect)', DEBUG_DEVELOPER);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue